From 89ad5ea38f18efb6e5e70bfbbfb5ac5488426703 Mon Sep 17 00:00:00 2001 From: Daniel J Walsh Date: Jan 14 2010 21:49:18 +0000 Subject: - Turn on puppet policy - Update to dgrift git policy --- diff --git a/booleans-targeted.conf b/booleans-targeted.conf index 1c43a96..ed1af2d 100644 --- a/booleans-targeted.conf +++ b/booleans-targeted.conf @@ -140,7 +140,11 @@ samba_enable_home_dirs = false # Allow squid to connect to all ports, not justHTTP, FTP, and Gopher ports. # -squid_connect_any = false +squid_connect_any = true + +# Allow privoxy to connect to all ports, not justHTTP, FTP, and Gopher ports. +# +privoxy_connect_any = true # Support NFS home directories # diff --git a/modules-minimum.conf b/modules-minimum.conf index 99288a5..35181dc 100644 --- a/modules-minimum.conf +++ b/modules-minimum.conf @@ -633,6 +633,12 @@ hddtemp = module # policykit = module +# Layer: services +# Module: puppet +# +# A network tool for managing many disparate systems +# +puppet = module # Layer: apps # Module: ptchown diff --git a/modules-targeted.conf b/modules-targeted.conf index 99288a5..35181dc 100644 --- a/modules-targeted.conf +++ b/modules-targeted.conf @@ -633,6 +633,12 @@ hddtemp = module # policykit = module +# Layer: services +# Module: puppet +# +# A network tool for managing many disparate systems +# +puppet = module # Layer: apps # Module: ptchown diff --git a/policy-F13.patch b/policy-F13.patch index 3c569cd..b3a36ce 100644 --- a/policy-F13.patch +++ b/policy-F13.patch @@ -7601,7 +7601,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/filesy + diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/filesystem.te serefpolicy-3.7.7/policy/modules/kernel/filesystem.te --- nsaserefpolicy/policy/modules/kernel/filesystem.te 2009-11-25 11:47:19.000000000 -0500 -+++ serefpolicy-3.7.7/policy/modules/kernel/filesystem.te 2010-01-11 09:53:58.000000000 -0500 ++++ serefpolicy-3.7.7/policy/modules/kernel/filesystem.te 2010-01-14 15:44:55.000000000 -0500 @@ -29,6 +29,7 @@ fs_use_xattr ext4dev gen_context(system_u:object_r:fs_t,s0); fs_use_xattr gfs gen_context(system_u:object_r:fs_t,s0); @@ -9798,7 +9798,16 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/roles/unprivu ') diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/roles/xguest.te serefpolicy-3.7.7/policy/modules/roles/xguest.te --- nsaserefpolicy/policy/modules/roles/xguest.te 2009-07-14 14:19:57.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/roles/xguest.te 2010-01-11 09:53:58.000000000 -0500 ++++ serefpolicy-3.7.7/policy/modules/roles/xguest.te 2010-01-14 13:49:32.000000000 -0500 +@@ -15,7 +15,7 @@ + + ## + ##

+-## Allow xguest to configure Network Manager ++## Allow xguest to configure Network Manager and connect to apache ports + ##

+ ##
+ gen_tunable(xguest_connect_network, true) @@ -30,11 +30,29 @@ role xguest_r; @@ -10092,7 +10101,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/abrt ## All of the rules required to administrate diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/abrt.te serefpolicy-3.7.7/policy/modules/services/abrt.te --- nsaserefpolicy/policy/modules/services/abrt.te 2009-09-16 09:09:20.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/services/abrt.te 2010-01-11 09:53:58.000000000 -0500 ++++ serefpolicy-3.7.7/policy/modules/services/abrt.te 2010-01-14 16:10:21.000000000 -0500 @@ -33,12 +33,24 @@ type abrt_var_run_t; files_pid_file(abrt_var_run_t) @@ -14895,7 +14904,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/cron ') diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/cups.fc serefpolicy-3.7.7/policy/modules/services/cups.fc --- nsaserefpolicy/policy/modules/services/cups.fc 2009-07-28 15:51:13.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/services/cups.fc 2010-01-11 09:53:58.000000000 -0500 ++++ serefpolicy-3.7.7/policy/modules/services/cups.fc 2010-01-14 09:44:37.000000000 -0500 @@ -13,10 +13,14 @@ /etc/cups/certs/.* -- gen_context(system_u:object_r:cupsd_rw_etc_t,s0) /etc/rc\.d/init\.d/cups -- gen_context(system_u:object_r:cupsd_initrc_exec_t,s0) @@ -14944,7 +14953,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/cups +/usr/local/linuxprinter/ppd(/.*)? gen_context(system_u:object_r:cupsd_rw_etc_t,s0) diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/cups.te serefpolicy-3.7.7/policy/modules/services/cups.te --- nsaserefpolicy/policy/modules/services/cups.te 2009-08-14 16:14:31.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/services/cups.te 2010-01-11 09:53:58.000000000 -0500 ++++ serefpolicy-3.7.7/policy/modules/services/cups.te 2010-01-14 09:43:53.000000000 -0500 @@ -23,6 +23,9 @@ type cupsd_initrc_exec_t; init_script_file(cupsd_initrc_exec_t) @@ -16180,10 +16189,58 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/fpri + policykit_dbus_chat_auth(fprintd_t) ') + +diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ftp.if serefpolicy-3.7.7/policy/modules/services/ftp.if +--- nsaserefpolicy/policy/modules/services/ftp.if 2009-07-14 14:19:57.000000000 -0400 ++++ serefpolicy-3.7.7/policy/modules/services/ftp.if 2010-01-14 14:06:25.000000000 -0500 +@@ -115,6 +115,44 @@ + role $2 types ftpdctl_t; + ') + ++####################################### ++## ++## Allow domain dyntransition to sftpd domain. ++## ++## ++## ++## Domain allowed access. ++## ++## ++# ++interface(`ftp_dyntransition_sftpd',` ++ gen_require(` ++ type sftpd_t; ++ ') ++ ++ allow $1 sftpd_t:process dyntransition; ++ allow sftpd_t $1:process sigchld; ++') ++ ++####################################### ++## ++## Allow domain dyntransition to sftpd_anon domain. ++## ++## ++## ++## Domain allowed access. ++## ++## ++# ++interface(`ftp_dyntransition_sftpd_anon',` ++ gen_require(` ++ type sftpd_anon_t; ++ ') ++ ++ allow $1 sftpd_anon_t:process dyntransition; ++ allow sftpd_anon_t $1:process sigchld; ++') ++ + ######################################## + ## + ## All of the rules required to administrate diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ftp.te serefpolicy-3.7.7/policy/modules/services/ftp.te --- nsaserefpolicy/policy/modules/services/ftp.te 2009-08-14 16:14:31.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/services/ftp.te 2010-01-11 09:53:58.000000000 -0500 -@@ -41,6 +41,13 @@ ++++ serefpolicy-3.7.7/policy/modules/services/ftp.te 2010-01-14 16:27:16.000000000 -0500 +@@ -41,11 +41,51 @@ ## ##

@@ -16197,7 +16254,45 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ftp. ## Allow ftp to read and write files in the user home directories ##

##
-@@ -78,12 +85,20 @@ + gen_tunable(ftp_home_dir, false) + ++## ++##

++## Allow anon internal-sftp to upload files, used for ++## public file transfer services. Directories must be labeled ++## public_content_rw_t. ++##

++##
++gen_tunable(sftpd_anon_write, false) ++ ++## ++##

++## Allow sftp-internal to login to local users and ++## read/write all files on the system, governed by DAC. ++##

++##
++gen_tunable(sftpd_full_access, false) ++ ++## ++##

++## Allow interlnal-sftp to read and write files ++## in the user ssh home directories. ++##

++##
++gen_tunable(sftpd_write_ssh_home, false) ++ ++## ++##

++## Allow sftp-internal to read and write files ++## in the user home directories ++##

++##
++gen_tunable(sftpd_enable_homedirs, false) ++ + type ftpd_t; + type ftpd_exec_t; + init_daemon_domain(ftpd_t, ftpd_exec_t) +@@ -78,12 +118,28 @@ type xferlog_t; logging_log_file(xferlog_t) @@ -16209,6 +16304,14 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ftp. + init_ranged_daemon_domain(ftpd_t, ftpd_exec_t, mls_systemhigh) +') + ++type sftpd_t; ++domain_type(sftpd_t) ++role system_r types sftpd_t; ++ ++type sftpd_anon_t; ++domain_type(sftpd_anon_t) ++role system_r types sftpd_anon_t; ++ ######################################## # # ftpd local policy @@ -16219,7 +16322,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ftp. dontaudit ftpd_t self:capability sys_tty_config; allow ftpd_t self:process signal_perms; allow ftpd_t self:process { getcap setcap setsched setrlimit }; -@@ -92,6 +107,8 @@ +@@ -92,6 +148,8 @@ allow ftpd_t self:unix_stream_socket create_stream_socket_perms; allow ftpd_t self:tcp_socket create_stream_socket_perms; allow ftpd_t self:udp_socket create_socket_perms; @@ -16228,7 +16331,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ftp. allow ftpd_t ftpd_etc_t:file read_file_perms; -@@ -121,8 +138,7 @@ +@@ -121,8 +179,7 @@ allow ftpd_t ftpdctl_tmp_t:sock_file { getattr unlink }; # Create and modify /var/log/xferlog. @@ -16238,7 +16341,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ftp. logging_log_filetrans(ftpd_t, xferlog_t, file) kernel_read_kernel_sysctls(ftpd_t) -@@ -160,6 +176,7 @@ +@@ -160,6 +217,7 @@ fs_search_auto_mountpoints(ftpd_t) fs_getattr_all_fs(ftpd_t) @@ -16246,7 +16349,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ftp. auth_use_nsswitch(ftpd_t) auth_domtrans_chk_passwd(ftpd_t) -@@ -219,10 +236,14 @@ +@@ -219,10 +277,14 @@ # allow access to /home files_list_home(ftpd_t) userdom_read_user_home_content_files(ftpd_t) @@ -16265,7 +16368,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ftp. ') tunable_policy(`ftp_home_dir && use_nfs_home_dirs',` -@@ -258,7 +279,26 @@ +@@ -258,7 +320,26 @@ ') optional_policy(` @@ -16293,7 +16396,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ftp. ') optional_policy(` -@@ -270,6 +310,14 @@ +@@ -270,6 +351,14 @@ ') optional_policy(` @@ -16308,26 +16411,106 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ftp. seutil_sigchld_newrole(ftpd_t) ') +@@ -294,3 +383,74 @@ + files_read_etc_files(ftpdctl_t) + + userdom_use_user_terminals(ftpdctl_t) ++ ++######################################## ++# ++# sftpd-anon local policy ++# ++files_read_etc_files(sftpd_anon_t) ++ ++miscfiles_read_public_files(sftpd_anon_t) ++ ++tunable_policy(`sftpd_anon_write',` ++ miscfiles_manage_public_files(sftpd_anon_t) ++') ++ ++######################################## ++# ++# sftpd local policy ++# ++files_read_etc_files(sftpd_t) ++ ++# allow read access to /home by default ++userdom_read_user_home_content_files(sftpd_t) ++userdom_read_user_home_content_symlinks(sftpd_t) ++userdom_dontaudit_list_admin_dir(sftpd_t) ++ ++tunable_policy(`sftpd_full_access',` ++ allow sftpd_t self:capability { dac_override dac_read_search }; ++ fs_read_noxattr_fs_files(sftpd_t) ++ auth_manage_all_files_except_shadow(sftpd_t) ++') ++ ++tunable_policy(`sftpd_write_ssh_home',` ++ ssh_manage_user_home_files(sftpd_t) ++') ++ ++tunable_policy(`sftpd_enable_homedirs',` ++ allow sftpd_t self:capability { dac_override dac_read_search }; ++ ++ # allow access to /home ++ files_list_home(sftpd_t) ++ userdom_read_user_home_content_files(sftpd_t) ++ userdom_manage_user_home_content(sftpd_t) ++ ++ auth_read_all_dirs_except_shadow(sftpd_t) ++ auth_read_all_files_except_shadow(sftpd_t) ++ auth_read_all_symlinks_except_shadow(sftpd_t) ++', ` ++ # Needed for permissive mode, to make sure everything gets labeled correctly ++ userdom_user_home_dir_filetrans_pattern(sftpd_t, { dir file lnk_file }) ++') ++ ++tunable_policy(`sftpd_enable_homedirs && use_nfs_home_dirs',` ++ fs_manage_nfs_dirs(sftpd_t) ++ fs_manage_nfs_files(sftpd_t) ++ fs_manage_nfs_symlinks(sftpd_t) ++') ++ ++tunable_policy(`sftpd_enable_homedirs && use_samba_home_dirs',` ++ fs_manage_cifs_dirs(sftpd_t) ++ fs_manage_cifs_files(sftpd_t) ++ fs_manage_cifs_symlinks(sftpd_t) ++') ++ ++tunable_policy(`use_samba_home_dirs',` ++ fs_read_cifs_files(sftpd_t) ++ fs_read_cifs_symlinks(sftpd_t) ++') ++ ++tunable_policy(`use_nfs_home_dirs',` ++ fs_read_nfs_files(sftpd_t) ++ fs_read_nfs_symlinks(ftpd_t) ++') diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git.fc serefpolicy-3.7.7/policy/modules/services/git.fc --- nsaserefpolicy/policy/modules/services/git.fc 2009-07-14 14:19:57.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/services/git.fc 2010-01-11 09:53:58.000000000 -0500 -@@ -1,3 +1,9 @@ - /var/cache/cgit(/.*)? gen_context(system_u:object_r:httpd_git_script_rw_t,s0) ++++ serefpolicy-3.7.7/policy/modules/services/git.fc 2010-01-14 15:37:45.000000000 -0500 +@@ -1,3 +1,12 @@ +-/var/cache/cgit(/.*)? gen_context(system_u:object_r:httpd_git_script_rw_t,s0) -/var/lib/git(/.*)? gen_context(system_u:object_r:httpd_git_content_t,s0) - /var/www/cgi-bin/cgit -- gen_context(system_u:object_r:httpd_git_script_exec_t,s0) +-/var/www/cgi-bin/cgit -- gen_context(system_u:object_r:httpd_git_script_exec_t,s0) ++HOME_DIR/public_git(/.*)? gen_context(system_u:object_r:gitd_session_content_t, s0) ++HOME_DIR/\.gitconfig -- gen_context(system_u:object_r:gitd_session_content_t, s0) + -+/srv/git(/.*)? gen_context(system_u:object_r:git_data_t, s0) ++/srv/git(/.*)? gen_context(system_u:object_r:gitd_system_content_t, s0) + +/usr/libexec/git-core/git-daemon -- gen_context(system_u:object_r:gitd_exec_t, s0) + -+# Conflict with Fedora cgit fc spec. -+/var/lib/git(/.*)? gen_context(system_u:object_r:git_data_t, s0) ++/var/cache/cgit(/.*)? gen_context(system_u:object_r:httpd_git_script_rw_t,s0) ++/var/www/cgi-bin/cgit -- gen_context(system_u:object_r:httpd_git_script_exec_t,s0) ++ ++/var/lib/git(/.*)? gen_context(system_u:object_r:gitd_system_content_t, s0) ++ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git.if serefpolicy-3.7.7/policy/modules/services/git.if --- nsaserefpolicy/policy/modules/services/git.if 2009-07-14 14:19:57.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/services/git.if 2010-01-11 09:53:58.000000000 -0500 -@@ -1 +1,285 @@ ++++ serefpolicy-3.7.7/policy/modules/services/git.if 2010-01-14 16:07:07.000000000 -0500 +@@ -1 +1,535 @@ -## GIT revision control system -+## Git daemon is a really simple server for Git repositories. ++## Git - Fast Version Control System. +## +##

+## A really simple TCP git daemon that normally listens on @@ -16335,27 +16518,6 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git. +## connection asking for a service, and will serve that +## service if it is enabled. +##

-+##

-+## It verifies that the directory has the magic file -+## git-daemon-export-ok, and it will refuse to export any -+## git directory that has not explicitly been marked for -+## export this way (unless the --export-all parameter is -+## specified). If you pass some directory paths as -+## git-daemon arguments, you can further restrict the -+## offers to a whitelist comprising of those. -+##

-+##

-+## By default, only upload-pack service is enabled, which -+## serves git-fetch-pack and git-ls-remote clients, which -+## are invoked from git-fetch, git-pull, and git-clone. -+##

-+##

-+## This is ideally suited for read-only updates, i.e., -+## pulling from git repositories. -+##

-+##

-+## An upload-archive also exists to serve git-archive. -+##

+##
+ +####################################### @@ -16373,73 +16535,174 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git. +##
+## +# -+interface(`git_session_role', ` ++interface(`git_session_role',` + gen_require(` -+ type gitd_session_t, gitd_exec_t, git_home_t; ++ type gitd_session_t, gitd_exec_t; + ') + + ######################################## + # -+ # Git daemon session data declarations. ++ # Git daemon session shared declarations. + # + -+ ## -+ ##

-+ ## Allow transitions to the Git daemon -+ ## session domain. -+ ##

-+ ##
-+ gen_tunable(gitd_session_transition, false) -+ + role $1 types gitd_session_t; + + ######################################## + # -+ # Git daemon session data policy. ++ # Git daemon session shared policy. + # + -+ tunable_policy(`gitd_session_transition', ` -+ domtrans_pattern($2, gitd_exec_t, gitd_session_t) -+ ', ` -+ can_exec($2, gitd_exec_t) -+ ') ++ domtrans_pattern($2, gitd_exec_t, gitd_session_t) + + allow $2 gitd_session_t:process { ptrace signal_perms }; + ps_process_pattern($2, gitd_session_t) ++') + -+ exec_files_pattern($2, git_home_t, git_home_t) -+ manage_dirs_pattern($2, git_home_t, git_home_t) -+ manage_files_pattern($2, git_home_t, git_home_t) ++######################################## ++## ++## Create a set of derived types for Git ++## daemon shared repository content. ++## ++## ++## ++## The prefix to be used for deriving type names. ++## ++## ++# ++template(`git_content_template',` + -+ relabel_dirs_pattern($2, git_home_t, git_home_t) -+ relabel_files_pattern($2, git_home_t, git_home_t) ++ gen_require(` ++ attribute gitd_system_content; ++ attribute gitd_content; ++ ') ++ ++ ######################################## ++ # ++ # Git daemon content shared declarations. ++ # ++ ++ type gitd_$1_content_t, gitd_system_content, gitd_content; ++ files_type(gitd_$1_content_t) +') + +######################################## +## -+## Allow the specified domain to execute -+## Git daemon data files. ++## Create a set of derived types for Git ++## daemon shared repository roles. ++## ++## ++## ++## The prefix to be used for deriving type names. ++## ++## ++# ++template(`git_role_template',` ++ ++ gen_require(` ++ class context contains; ++ role system_r; ++ ') ++ ++ ######################################## ++ # ++ # Git daemon role shared declarations. ++ # ++ ++ attribute $1_usertype; ++ ++ type $1_t; ++ userdom_unpriv_usertype($1, $1_t) ++ domain_type($1_t) ++ ++ role $1_r types $1_t; ++ allow system_r $1_r; ++ ++ ######################################## ++ # ++ # Git daemon role shared policy. ++ # ++ ++ allow $1_t self:context contains; ++ allow $1_t self:fifo_file rw_fifo_file_perms; ++ ++ corecmd_exec_bin($1_t) ++ corecmd_bin_entry_type($1_t) ++ corecmd_shell_entry_type($1_t) ++ ++ domain_interactive_fd($1_t) ++ domain_user_exemption_target($1_t) ++ ++ kernel_read_system_state($1_t) ++ ++ files_read_etc_files($1_t) ++ files_dontaudit_search_home($1_t) ++ ++ miscfiles_read_localization($1_t) ++ ++ git_rwx_generic_system_content($1_t) ++ ++ ssh_rw_stream_sockets($1_t) ++ ++ tunable_policy(`gitd_system_use_cifs',` ++ fs_exec_cifs_files($1_t) ++ fs_manage_cifs_dirs($1_t) ++ fs_manage_cifs_files($1_t) ++ ') ++ ++ tunable_policy(`gitd_system_use_nfs',` ++ fs_exec_nfs_files($1_t) ++ fs_manage_nfs_dirs($1_t) ++ fs_manage_nfs_files($1_t) ++ ') ++ ++ optional_policy(` ++ nscd_read_pid($1_t) ++ ') ++') ++ ++####################################### ++## ++## Allow specified domain access to the ++## specified Git daemon content. +## +## +## +## Domain allowed access. +## +## -+## ++## ++## ++## Type of the object that access is allowed to. ++## ++## +# -+interface(`git_execute_data_files', ` ++interface(`git_content_delegation',` + gen_require(` -+ type git_data_t; ++ type $1, $2; + ') + -+ exec_files_pattern($1, git_data_t, git_data_t) ++ exec_files_pattern($1, $2, $2) ++ manage_dirs_pattern($1, $2, $2) ++ manage_files_pattern($1, $2, $2) + files_search_var($1) ++ ++ tunable_policy(`gitd_system_use_cifs',` ++ fs_exec_cifs_files($1) ++ fs_manage_cifs_dirs($1) ++ fs_manage_cifs_files($1) ++ ') ++ ++ tunable_policy(`gitd_system_use_nfs',` ++ fs_exec_nfs_files($1) ++ fs_manage_nfs_dirs($1) ++ fs_manage_nfs_files($1) ++ ') +') + +######################################## +## +## Allow the specified domain to manage -+## Git daemon data content. ++## and execute all Git daemon content. +## +## +## @@ -16448,20 +16711,46 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git. +## +## +# -+interface(`git_manage_data_content', ` ++interface(`git_rwx_all_content',` + gen_require(` -+ type git_data_t; ++ attribute gitd_content; + ') + -+ manage_dirs_pattern($1, git_data_t, git_data_t) -+ manage_files_pattern($1, git_data_t, git_data_t) ++ exec_files_pattern($1, gitd_content, gitd_content) ++ manage_dirs_pattern($1, gitd_content, gitd_content) ++ manage_files_pattern($1, gitd_content, gitd_content) ++ userdom_search_user_home_dirs($1) + files_search_var($1) ++ ++ tunable_policy(`use_nfs_home_dirs',` ++ fs_exec_nfs_files($1) ++ fs_manage_nfs_dirs($1) ++ fs_manage_nfs_files($1) ++ ') ++ ++ tunable_policy(`use_samba_home_dirs',` ++ fs_exec_cifs_files($1) ++ fs_manage_cifs_dirs($1) ++ fs_manage_cifs_files($1) ++ ') ++ ++ tunable_policy(`gitd_system_use_cifs',` ++ fs_exec_cifs_files($1) ++ fs_manage_cifs_dirs($1) ++ fs_manage_cifs_files($1) ++ ') ++ ++ tunable_policy(`gitd_system_use_nfs',` ++ fs_exec_nfs_files($1) ++ fs_manage_nfs_dirs($1) ++ fs_manage_nfs_files($1) ++ ') +') + +######################################## +## +## Allow the specified domain to manage -+## Git daemon home content. ++## and execute all Git daemon system content. +## +## +## @@ -16470,20 +16759,33 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git. +## +## +# -+interface(`git_manage_home_content', ` ++interface(`git_rwx_all_system_content',` + gen_require(` -+ type git_home_t; ++ attribute gitd_system_content; + ') + -+ manage_dirs_pattern($1, git_home_t, git_home_t) -+ manage_files_pattern($1, git_home_t, git_home_t) -+ files_search_home($1) ++ exec_files_pattern($1, gitd_system_content, gitd_system_content) ++ manage_dirs_pattern($1, gitd_system_content, gitd_system_content) ++ manage_files_pattern($1, gitd_system_content, gitd_system_content) ++ files_search_var($1) ++ ++ tunable_policy(`gitd_system_use_cifs',` ++ fs_exec_cifs_files($1) ++ fs_manage_cifs_dirs($1) ++ fs_manage_cifs_files($1) ++ ') ++ ++ tunable_policy(`gitd_system_use_nfs',` ++ fs_exec_nfs_files($1) ++ fs_manage_nfs_dirs($1) ++ fs_manage_nfs_files($1) ++ ') +') + +######################################## +## -+## Allow the specified domain to read -+## Git daemon home content. ++## Allow the specified domain to manage ++## and execute Git daemon generic system content. +## +## +## @@ -16492,20 +16794,33 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git. +## +## +# -+interface(`git_read_home_content', ` ++interface(`git_rwx_generic_system_content',` + gen_require(` -+ type git_home_t; ++ type gitd_system_content_t; + ') + -+ list_dirs_pattern($1, git_home_t, git_home_t) -+ read_files_pattern($1, git_home_t, git_home_t) -+ files_search_home($1) ++ exec_files_pattern($1, gitd_system_content_t, gitd_system_content_t) ++ manage_dirs_pattern($1, gitd_system_content_t, gitd_system_content_t) ++ manage_files_pattern($1, gitd_system_content_t, gitd_system_content_t) ++ files_search_var($1) ++ ++ tunable_policy(`gitd_system_use_cifs',` ++ fs_exec_cifs_files($1) ++ fs_manage_cifs_dirs($1) ++ fs_manage_cifs_files($1) ++ ') ++ ++ tunable_policy(`gitd_system_use_nfs',` ++ fs_exec_nfs_files($1) ++ fs_manage_nfs_dirs($1) ++ fs_manage_nfs_files($1) ++ ') +') + +######################################## +## +## Allow the specified domain to read -+## Git daemon data content. ++## all Git daemon content files. +## +## +## @@ -16514,20 +16829,41 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git. +## +## +# -+interface(`git_read_data_content', ` ++interface(`git_read_all_content_files',` + gen_require(` -+ type git_data_t; ++ attribute gitd_content; + ') + -+ list_dirs_pattern($1, git_data_t, git_data_t) -+ read_files_pattern($1, git_data_t, git_data_t) ++ list_dirs_pattern($1, gitd_content, gitd_content) ++ read_files_pattern($1, gitd_content, gitd_content) ++ userdom_search_user_home_dirs($1) + files_search_var($1) ++ ++ tunable_policy(`use_nfs_home_dirs',` ++ fs_list_nfs($1) ++ fs_read_nfs_files($1) ++ ') ++ ++ tunable_policy(`use_samba_home_dirs',` ++ fs_list_cifs($1) ++ fs_read_cifs_files($1) ++ ') ++ ++ tunable_policy(`gitd_system_use_cifs',` ++ fs_list_cifs($1) ++ fs_read_cifs_files($1) ++ ') ++ ++ tunable_policy(`gitd_system_use_nfs',` ++ fs_list_nfs($1) ++ fs_read_nfs_files($1) ++ ') +') + +######################################## +## -+## Allow the specified domain to relabel -+## Git daemon data content. ++## Allow the specified domain to read ++## Git daemon session content files. +## +## +## @@ -16536,20 +16872,30 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git. +## +## +# -+interface(`git_relabel_data_content', ` ++interface(`git_read_session_content_files',` + gen_require(` -+ type git_data_t; ++ type gitd_session_content_t; + ') + -+ relabel_dirs_pattern($1, git_data_t, git_data_t) -+ relabel_files_pattern($1, git_data_t, git_data_t) -+ files_search_var($1) ++ list_dirs_pattern($1, gitd_session_content_t, gitd_session_content_t) ++ read_files_pattern($1, gitd_session_content_t, gitd_session_content_t) ++ userdom_search_user_home_dirs($1) ++ ++ tunable_policy(`use_nfs_home_dirs',` ++ fs_list_nfs($1) ++ fs_read_nfs_files($1) ++ ') ++ ++ tunable_policy(`use_samba_home_dirs',` ++ fs_list_cifs($1) ++ fs_read_cifs_files($1) ++ ') +') + +######################################## +## -+## Allow the specified domain to relabel -+## Git daemon home content. ++## Allow the specified domain to read ++## all Git daemon system content files. +## +## +## @@ -16558,114 +16904,203 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git. +## +## +# -+interface(`git_relabel_home_content', ` ++interface(`git_read_all_system_content_files',` + gen_require(` -+ type git_home_t; ++ attribute gitd_system_content; + ') + -+ relabel_dirs_pattern($1, git_home_t, git_home_t) -+ relabel_files_pattern($1, git_home_t, git_home_t) -+ files_search_home($1) ++ list_dirs_pattern($1, gitd_system_content, gitd_system_content) ++ read_files_pattern($1, gitd_system_content, gitd_system_content) ++ files_search_var($1) ++ ++ tunable_policy(`gitd_system_use_cifs',` ++ fs_list_cifs($1) ++ fs_read_cifs_files($1) ++ ') ++ ++ tunable_policy(`gitd_system_use_nfs',` ++ fs_list_nfs($1) ++ fs_read_nfs_files($1) ++ ') +') + +######################################## +## -+## All of the rules required to administrate an -+## Git daemon system environment ++## Allow the specified domain to read ++## Git daemon generic system content files. +## -+## ++## +## -+## Prefix of the domain. Example, user would be -+## the prefix for the user_t domain. ++## Domain allowed access. +## +## ++## ++# ++interface(`git_read_generic_system_content_files',` ++ gen_require(` ++ type gitd_system_content_t; ++ ') ++ ++ list_dirs_pattern($1, gitd_system_content_t, gitd_system_content_t) ++ read_files_pattern($1, gitd_system_content_t, gitd_system_content_t) ++ files_search_var($1) ++ ++ tunable_policy(`gitd_system_use_cifs',` ++ fs_list_cifs($1) ++ fs_read_cifs_files($1) ++ ') ++ ++ tunable_policy(`gitd_system_use_nfs',` ++ fs_list_nfs($1) ++ fs_read_nfs_files($1) ++ ') ++') ++ ++######################################## ++## ++## Allow the specified domain to relabel ++## all Git daemon content. ++## +## +## +## Domain allowed access. +## +## -+## ++## ++# ++interface(`git_relabel_all_content',` ++ gen_require(` ++ attribute gitd_content; ++ ') ++ ++ relabel_dirs_pattern($1, gitd_content, gitd_content) ++ relabel_files_pattern($1, gitd_content, gitd_content) ++ userdom_search_user_home_dirs($1) ++ files_search_var($1) ++') ++ ++######################################## ++## ++## Allow the specified domain to relabel ++## all Git daemon system content. ++## ++## +## -+## The role to be allowed to manage the Git daemon domain. ++## Domain allowed access. +## +## +## +# -+interface(`git_system_admin', ` ++interface(`git_relabel_all_system_content',` + gen_require(` -+ type gitd_t, gitd_exec_t; ++ attribute gitd_system_content; + ') + -+ allow $1 gitd_t:process { getattr ptrace signal_perms }; -+ ps_process_pattern($1, gitd_t) -+ -+ kernel_search_proc($1) ++ relabel_dirs_pattern($1, gitd_system_content, gitd_system_content) ++ relabel_files_pattern($1, gitd_system_content, gitd_system_content) ++ files_search_var($1) ++') + -+ manage_files_pattern($1, gitd_exec_t, gitd_exec_t) ++######################################## ++## ++## Allow the specified domain to relabel ++## Git daemon generic system content. ++## ++## ++## ++## Domain allowed access. ++## ++## ++## ++# ++interface(`git_relabel_generic_system_content',` ++ gen_require(` ++ type gitd_system_content_t; ++ ') + -+ # This will not work since git-shell needs to execute gitd content thus public content files. -+ # There is currently no clean way to execute public content files. -+ # miscfiles_manage_public_files($1) ++ relabel_dirs_pattern($1, gitd_system_content_t, gitd_system_content_t) ++ relabel_files_pattern($1, gitd_system_content_t, gitd_system_content_t) ++ files_search_var($1) ++') + -+ git_manage_data_content($1) -+ git_relabel_data_content($1) ++######################################## ++## ++## Allow the specified domain to relabel ++## Git daemon session content. ++## ++## ++## ++## Domain allowed access. ++## ++## ++## ++# ++interface(`git_relabel_session_content',` ++ gen_require(` ++ type gitd_session_content_t; ++ ') + -+ seutil_domtrans_setfiles($1) ++ relabel_dirs_pattern($1, gitd_session_content_t, gitd_session_content_t) ++ relabel_files_pattern($1, gitd_session_content_t, gitd_session_content_t) ++ userdom_search_user_home_dirs($1) +') ++ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git.te serefpolicy-3.7.7/policy/modules/services/git.te --- nsaserefpolicy/policy/modules/services/git.te 2009-07-14 14:19:57.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/services/git.te 2010-01-11 09:53:58.000000000 -0500 -@@ -1,9 +1,173 @@ ++++ serefpolicy-3.7.7/policy/modules/services/git.te 2010-01-14 16:12:14.000000000 -0500 +@@ -1,9 +1,181 @@ - policy_module(git, 1.0) - -+attribute gitd_type; -+attribute git_content_type; -+ -+######################################## -+# -+# Git daemon system private declarations. -+# +-policy_module(git, 1.0) ++policy_module(gitd, 1.0.3) + +## +##

+## Allow Git daemon system to search home directories. +##

+##
-+gen_tunable(git_system_enable_homedirs, false) ++gen_tunable(gitd_system_enable_homedirs, false) + +## +##

+## Allow Git daemon system to access cifs file systems. +##

+##
-+gen_tunable(git_system_use_cifs, false) ++gen_tunable(gitd_system_use_cifs, false) + +## +##

+## Allow Git daemon system to access nfs file systems. +##

+##
-+gen_tunable(git_system_use_nfs, false) ++gen_tunable(gitd_system_use_nfs, false) + +######################################## +# +# Git daemon global private declarations. +# ++ ++attribute gitd_domains; ++attribute gitd_system_content; ++attribute gitd_content; ++ +type gitd_exec_t; + -+type gitd_t, gitd_type; -+inetd_service_domain(gitd_t, gitd_exec_t) -+role system_r types gitd_t; ++######################################## ++# ++# Git daemon system private declarations. ++# + -+type git_data_t, git_content_type; -+files_type(git_data_t) ++type gitd_system_t, gitd_domains; ++inetd_service_domain(gitd_system_t, gitd_exec_t) ++role system_r types gitd_system_t; + -+permissive gitd_t; ++type gitd_system_content_t, gitd_system_content, gitd_content; ++files_type(gitd_system_content_t) ++typealias gitd_system_content_t alias git_data_t; + +######################################## +# -+# Git daemon session session private declarations. ++# Git daemon session private declarations. +# + +## @@ -16674,87 +17109,84 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git. +## tcp sockets to all unreserved ports. +##

+##
-+gen_tunable(git_session_bind_all_unreserved_ports, false) ++gen_tunable(gitd_session_bind_all_unreserved_ports, false) + -+type gitd_session_t, gitd_type; ++type gitd_session_t, gitd_domains; +application_domain(gitd_session_t, gitd_exec_t) +ubac_constrained(gitd_session_t) + -+type git_home_t, git_content_type; -+userdom_user_home_content(git_home_t) -+ -+permissive gitd_session_t; ++type gitd_session_content_t, gitd_content; ++userdom_user_home_content(gitd_session_content_t) + +######################################## +# +# Git daemon global private policy. +# + -+allow gitd_type self:fifo_file rw_fifo_file_perms; -+allow gitd_type self:tcp_socket create_socket_perms; -+allow gitd_type self:udp_socket create_socket_perms; -+allow gitd_type self:unix_dgram_socket create_socket_perms; ++allow gitd_domains self:fifo_file rw_fifo_file_perms; ++allow gitd_domains self:netlink_route_socket create_netlink_socket_perms; ++allow gitd_domains self:tcp_socket { create_socket_perms listen }; ++allow gitd_domains self:udp_socket create_socket_perms; ++allow gitd_domains self:unix_dgram_socket create_socket_perms; ++ ++corenet_all_recvfrom_netlabel(gitd_domains) ++corenet_all_recvfrom_unlabeled(gitd_domains) + -+corenet_all_recvfrom_netlabel(gitd_type) -+corenet_all_recvfrom_unlabeled(gitd_type) ++corenet_tcp_bind_generic_node(gitd_domains) + -+corenet_tcp_sendrecv_all_if(gitd_type) -+corenet_tcp_sendrecv_all_nodes(gitd_type) -+corenet_tcp_sendrecv_all_ports(gitd_type) ++corenet_tcp_sendrecv_generic_if(gitd_domains) ++corenet_tcp_sendrecv_generic_node(gitd_domains) ++corenet_tcp_sendrecv_generic_port(gitd_domains) + -+corenet_tcp_bind_all_nodes(gitd_type) -+corenet_tcp_bind_git_port(gitd_type) ++corenet_tcp_bind_git_port(gitd_domains) ++corenet_sendrecv_git_server_packets(gitd_domains) + -+corecmd_exec_bin(gitd_type) ++corecmd_exec_bin(gitd_domains) + -+files_read_etc_files(gitd_type) -+files_read_usr_files(gitd_type) ++files_read_etc_files(gitd_domains) ++files_read_usr_files(gitd_domains) + -+fs_search_auto_mountpoints(gitd_type) ++fs_search_auto_mountpoints(gitd_domains) + -+kernel_read_system_state(gitd_type) ++kernel_read_system_state(gitd_domains) + -+logging_send_syslog_msg(gitd_type) ++auth_use_nsswitch(gitd_domains) + -+auth_use_nsswitch(gitd_type) ++logging_send_syslog_msg(gitd_domains) + -+miscfiles_read_localization(gitd_type) ++miscfiles_read_localization(gitd_domains) + +######################################## +# +# Git daemon system repository private policy. +# + -+list_dirs_pattern(gitd_t, git_content_type, git_content_type) -+read_files_pattern(gitd_t, git_content_type, git_content_type) -+files_search_var(gitd_t) ++list_dirs_pattern(gitd_system_t, gitd_content, gitd_content) ++read_files_pattern(gitd_system_t, gitd_content, gitd_content) ++files_search_var(gitd_system_t) + -+# This will not work since git-shell needs to execute gitd content thus public content files. -+# There is currently no clean way to execute public content files. -+# miscfiles_read_public_files(gitd_t) -+ -+tunable_policy(`git_system_enable_homedirs', ` -+ userdom_search_user_home_dirs(gitd_t) ++tunable_policy(`gitd_system_enable_homedirs', ` ++ userdom_search_user_home_dirs(gitd_system_t) +') + -+tunable_policy(`git_system_enable_homedirs && use_nfs_home_dirs', ` -+ fs_list_nfs(gitd_t) -+ fs_read_nfs_files(gitd_t) ++tunable_policy(`gitd_system_enable_homedirs && use_nfs_home_dirs', ` ++ fs_list_nfs(gitd_system_t) ++ fs_read_nfs_files(gitd_system_t) +') + -+tunable_policy(`git_system_enable_homedirs && use_samba_home_dirs', ` -+ fs_list_cifs(gitd_t) -+ fs_read_cifs_files(gitd_t) ++tunable_policy(`gitd_system_enable_homedirs && use_samba_home_dirs', ` ++ fs_list_cifs(gitd_system_t) ++ fs_read_cifs_files(gitd_system_t) +') + -+tunable_policy(`git_system_use_cifs', ` -+ fs_list_cifs(gitd_t) -+ fs_read_cifs_files(gitd_t) ++tunable_policy(`gitd_system_use_cifs', ` ++ fs_list_cifs(gitd_system_t) ++ fs_read_cifs_files(gitd_system_t) +') + -+tunable_policy(`git_system_use_nfs', ` -+ fs_list_nfs(gitd_t) -+ fs_read_nfs_files(gitd_t) ++tunable_policy(`gitd_system_use_nfs', ` ++ fs_list_nfs(gitd_system_t) ++ fs_read_nfs_files(gitd_system_t) +') + +######################################## @@ -16762,13 +17194,13 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git. +# Git daemon session repository private policy. +# + -+list_dirs_pattern(gitd_session_t, git_home_t, git_home_t) -+read_files_pattern(gitd_session_t, git_home_t, git_home_t) ++list_dirs_pattern(gitd_session_t, gitd_session_content_t, gitd_session_content_t) ++read_files_pattern(gitd_session_t, gitd_session_content_t, gitd_session_content_t) +userdom_search_user_home_dirs(gitd_session_t) + +userdom_use_user_terminals(gitd_session_t) + -+tunable_policy(`git_session_bind_all_unreserved_ports', ` ++tunable_policy(`gitd_session_bind_all_unreserved_ports', ` + corenet_tcp_bind_all_unreserved_ports(gitd_session_t) +') + @@ -16782,14 +17214,25 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/git. + fs_read_cifs_files(gitd_session_t) +') + ++######################################## ++# ++# cgi git Declarations ++# ++ ++optional_policy(` ++ apache_content_template(git) ++ git_read_session_content_files(httpd_git_script_t) ++') + ######################################## # -# Declarations -+# cgi git Declarations ++# Git-shell private policy. # - apache_content_template(git) -+git_read_data_content(httpd_git_script_t) +-apache_content_template(git) ++git_role_template(git_shell) ++gen_user(git_shell_u, user, git_shell_r, s0, s0) diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/gpsd.te serefpolicy-3.7.7/policy/modules/services/gpsd.te --- nsaserefpolicy/policy/modules/services/gpsd.te 2010-01-07 14:53:53.000000000 -0500 +++ serefpolicy-3.7.7/policy/modules/services/gpsd.te 2010-01-11 09:53:58.000000000 -0500 @@ -21251,6 +21694,25 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/proc ') optional_policy(` +diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/puppet.te serefpolicy-3.7.7/policy/modules/services/puppet.te +--- nsaserefpolicy/policy/modules/services/puppet.te 2009-11-12 12:51:51.000000000 -0500 ++++ serefpolicy-3.7.7/policy/modules/services/puppet.te 2010-01-14 10:36:57.000000000 -0500 +@@ -17,6 +17,7 @@ + type puppet_t; + type puppet_exec_t; + init_daemon_domain(puppet_t, puppet_exec_t) ++permissive puppet_t; + + type puppet_etc_t; + files_config_file(puppet_etc_t) +@@ -39,6 +40,7 @@ + type puppetmaster_t; + type puppetmaster_exec_t; + init_daemon_domain(puppetmaster_t, puppetmaster_exec_t) ++permissive puppetmaster_t; + + type puppetmaster_initrc_exec_t; + init_script_file(puppetmaster_initrc_exec_t) diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/pyzor.fc serefpolicy-3.7.7/policy/modules/services/pyzor.fc --- nsaserefpolicy/policy/modules/services/pyzor.fc 2009-07-14 14:19:57.000000000 -0400 +++ serefpolicy-3.7.7/policy/modules/services/pyzor.fc 2010-01-11 09:53:58.000000000 -0500 @@ -24969,54 +25431,18 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh. + diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh.te serefpolicy-3.7.7/policy/modules/services/ssh.te --- nsaserefpolicy/policy/modules/services/ssh.te 2009-08-14 16:14:31.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/services/ssh.te 2010-01-11 09:53:58.000000000 -0500 -@@ -8,6 +8,31 @@ - - ## - ##

-+## Allow sftp to upload files, used for public file -+## transfer services. Directories must be labeled -+## public_content_rw_t. -+##

-+##
-+gen_tunable(allow_sftpd_anon_write, false) -+ -+## -+##

-+## Allow sftp to login to local users and -+## read/write all files on the system, governed by DAC. -+##

-+##
-+gen_tunable(allow_sftpd_full_access, false) -+ -+## -+##

-+## Allow interlnal-sftp to read and write files -+## in the user ssh home directories. -+##

-+##
-+gen_tunable(sftpd_ssh_home_dir, false) -+ -+## -+##

- ## allow host key based authentication - ##

- ##
-@@ -41,6 +66,13 @@ ++++ serefpolicy-3.7.7/policy/modules/services/ssh.te 2010-01-14 14:12:19.000000000 -0500 +@@ -41,6 +41,9 @@ files_tmp_file(sshd_tmp_t) files_poly_parent(sshd_tmp_t) +type sshd_tmpfs_t; +files_tmpfs_file(sshd_tmpfs_t) + -+type sftpd_t; -+domain_type(sftpd_t) -+role system_r types sftpd_t; -+ ifdef(`enable_mcs',` init_ranged_daemon_domain(sshd_t, sshd_exec_t, s0 - mcs_systemhigh) ') -@@ -75,7 +107,7 @@ +@@ -75,7 +78,7 @@ ubac_constrained(ssh_tmpfs_t) type home_ssh_t; @@ -25025,7 +25451,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh. typealias home_ssh_t alias { auditadm_home_ssh_t secadm_home_ssh_t }; files_type(home_ssh_t) userdom_user_home_content(home_ssh_t) -@@ -95,8 +127,7 @@ +@@ -95,8 +98,7 @@ allow ssh_t self:sem create_sem_perms; allow ssh_t self:msgq create_msgq_perms; allow ssh_t self:msg { send receive }; @@ -25035,7 +25461,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh. # Read the ssh key file. allow ssh_t sshd_key_t:file read_file_perms; -@@ -115,6 +146,7 @@ +@@ -115,6 +117,7 @@ manage_dirs_pattern(ssh_t, home_ssh_t, home_ssh_t) manage_sock_files_pattern(ssh_t, home_ssh_t, home_ssh_t) userdom_user_home_dir_filetrans(ssh_t, home_ssh_t, { dir sock_file }) @@ -25043,7 +25469,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh. # Allow the ssh program to communicate with ssh-agent. stream_connect_pattern(ssh_t, ssh_agent_tmp_t, ssh_agent_tmp_t, ssh_agent_type) -@@ -126,11 +158,13 @@ +@@ -126,11 +129,13 @@ read_lnk_files_pattern(ssh_t, home_ssh_t, home_ssh_t) # ssh servers can read the user keys and config @@ -25060,7 +25486,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh. corenet_all_recvfrom_unlabeled(ssh_t) corenet_all_recvfrom_netlabel(ssh_t) -@@ -139,6 +173,8 @@ +@@ -139,6 +144,8 @@ corenet_tcp_sendrecv_all_ports(ssh_t) corenet_tcp_connect_ssh_port(ssh_t) corenet_sendrecv_ssh_client_packets(ssh_t) @@ -25069,7 +25495,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh. dev_read_urand(ssh_t) -@@ -160,19 +196,19 @@ +@@ -160,19 +167,19 @@ logging_send_syslog_msg(ssh_t) logging_read_generic_logs(ssh_t) @@ -25092,7 +25518,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh. tunable_policy(`allow_ssh_keysign',` domain_auto_trans(ssh_t, ssh_keysign_exec_t, ssh_keysign_t) -@@ -194,18 +230,7 @@ +@@ -194,18 +201,7 @@ # for port forwarding tunable_policy(`user_tcp_server',` corenet_tcp_bind_ssh_port(ssh_t) @@ -25112,7 +25538,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh. ') optional_policy(` -@@ -294,6 +319,8 @@ +@@ -294,6 +290,8 @@ allow sshd_t self:netlink_route_socket r_netlink_socket_perms; allow sshd_t self:key { search link write }; @@ -25121,7 +25547,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh. manage_dirs_pattern(sshd_t, sshd_tmp_t, sshd_tmp_t) manage_files_pattern(sshd_t, sshd_tmp_t, sshd_tmp_t) manage_sock_files_pattern(sshd_t, sshd_tmp_t, sshd_tmp_t) -@@ -310,16 +337,30 @@ +@@ -310,27 +308,50 @@ corenet_tcp_bind_xserver_port(sshd_t) corenet_sendrecv_xserver_server_packets(sshd_t) @@ -25140,21 +25566,32 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh. - userdom_spec_domtrans_all_users(sshd_t) userdom_signal_all_users(sshd_t) -',` -+') +- userdom_spec_domtrans_unpriv_users(sshd_t) +- userdom_signal_unpriv_users(sshd_t) + ') + ++userdom_spec_domtrans_unpriv_users(sshd_t) ++userdom_signal_unpriv_users(sshd_t) + - userdom_spec_domtrans_unpriv_users(sshd_t) - userdom_signal_unpriv_users(sshd_t) + optional_policy(` + daemontools_service_domain(sshd_t, sshd_exec_t) + ') + + optional_policy(` ++ kerberos_keytab_template(sshd, sshd_t) ++') + +optional_policy(` -+ kerberos_keytab_template(sshd, sshd_t) ++ ftp_dyntransition_sftpd(sshd_t) ++ ftp_dyntransition_sftpd_anon(sshd_t) +') + +optional_policy(` + gitosis_manage_var_lib(sshd_t) - ') - - optional_policy(` -@@ -331,6 +372,10 @@ ++') ++ ++optional_policy(` + inetd_tcp_service_domain(sshd_t, sshd_exec_t) ') optional_policy(` @@ -25165,7 +25602,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh. rpm_use_script_fds(sshd_t) ') -@@ -341,10 +386,18 @@ +@@ -341,10 +362,18 @@ ') optional_policy(` @@ -25185,7 +25622,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh. ifdef(`TODO',` tunable_policy(`ssh_sysadm_login',` # Relabel and access ptys created by sshd -@@ -400,18 +453,63 @@ +@@ -400,15 +429,13 @@ init_use_fds(ssh_keygen_t) init_use_script_ptys(ssh_keygen_t) @@ -25203,56 +25640,6 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/ssh. seutil_sigchld_newrole(ssh_keygen_t) ') - optional_policy(` - udev_read_db(ssh_keygen_t) - ') -+ -+####################################### -+# -+# sftp Local policy -+# -+ -+allow ssh_server sftpd_t:process dyntransition; -+ -+ssh_sigchld(sftpd_t) -+ -+files_read_all_files(sftpd_t) -+files_read_all_symlinks(sftpd_t) -+ -+fs_read_noxattr_fs_files(sftpd_t) -+fs_read_nfs_files(sftpd_t) -+fs_read_cifs_files(sftpd_t) -+ -+# allow access to /home by default -+userdom_manage_user_home_content_dirs(sftpd_t) -+userdom_manage_user_home_content_files(sftpd_t) -+userdom_manage_user_home_content_symlinks(sftpd_t) -+ -+userdom_user_home_dir_filetrans_pattern(sftpd_t, { dir file lnk_file }) -+ -+tunable_policy(`allow_sftpd_anon_write',` -+ miscfiles_manage_public_files(sftpd_t) -+') -+ -+tunable_policy(`allow_sftpd_full_access',` -+ allow sftpd_t self:capability { dac_override dac_read_search }; -+ fs_read_noxattr_fs_files(sftpd_t) -+ auth_manage_all_files_except_shadow(sftpd_t) -+') -+ -+tunable_policy(`sftpd_ssh_home_dir',` -+ ssh_manage_user_home_files(sftpd_t) -+') -+ -+tunable_policy(`use_nfs_home_dirs',` -+ fs_manage_nfs_dirs(sftpd_t) -+ fs_manage_nfs_files(sftpd_t) -+') -+ -+tunable_policy(`use_samba_home_dirs',` -+ fs_manage_cifs_dirs(sftpd_t) -+ fs_manage_cifs_files(sftpd_t) -+') diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/sssd.if serefpolicy-3.7.7/policy/modules/services/sssd.if --- nsaserefpolicy/policy/modules/services/sssd.if 2010-01-07 14:53:53.000000000 -0500 +++ serefpolicy-3.7.7/policy/modules/services/sssd.if 2010-01-11 09:53:58.000000000 -0500 @@ -25849,8 +26236,16 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/vhos +') diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/virt.fc serefpolicy-3.7.7/policy/modules/services/virt.fc --- nsaserefpolicy/policy/modules/services/virt.fc 2009-07-14 14:19:57.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/services/virt.fc 2010-01-11 09:53:58.000000000 -0500 -@@ -8,5 +8,18 @@ ++++ serefpolicy-3.7.7/policy/modules/services/virt.fc 2010-01-12 10:28:03.000000000 -0500 +@@ -4,9 +4,26 @@ + /etc/libvirt/.*/.* gen_context(system_u:object_r:virt_etc_rw_t,s0) + /etc/rc\.d/init\.d/libvirtd -- gen_context(system_u:object_r:virtd_initrc_exec_t,s0) + ++/etc/xen -d gen_context(system_u:object_r:virt_etc_t,s0) ++/etc/xen/[^/]* -- gen_context(system_u:object_r:virt_etc_t,s0) ++/etc/xen/[^/]* -d gen_context(system_u:object_r:virt_etc_rw_t,s0) ++/etc/xen/.*/.* gen_context(system_u:object_r:virt_etc_rw_t,s0) + /usr/sbin/libvirtd -- gen_context(system_u:object_r:virtd_exec_t,s0) /var/lib/libvirt(/.*)? gen_context(system_u:object_r:virt_var_lib_t,s0) /var/lib/libvirt/images(/.*)? gen_context(system_u:object_r:virt_image_t,s0) @@ -26574,7 +26969,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/w3c. corenet_tcp_connect_http_port(httpd_w3c_validator_script_t) diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xserver.fc serefpolicy-3.7.7/policy/modules/services/xserver.fc --- nsaserefpolicy/policy/modules/services/xserver.fc 2009-07-14 14:19:57.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/services/xserver.fc 2010-01-11 09:53:58.000000000 -0500 ++++ serefpolicy-3.7.7/policy/modules/services/xserver.fc 2010-01-14 09:21:39.000000000 -0500 @@ -3,12 +3,21 @@ # HOME_DIR/\.fonts\.conf -- gen_context(system_u:object_r:user_fonts_config_t,s0) @@ -26609,16 +27004,19 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser # # /opt # -@@ -47,8 +51,6 @@ +@@ -47,21 +51,22 @@ # /tmp # -/tmp/\.ICE-unix -d gen_context(system_u:object_r:xdm_tmp_t,s0) -/tmp/\.ICE-unix/.* -s <> /tmp/\.X0-lock -- gen_context(system_u:object_r:xserver_tmp_t,s0) - /tmp/\.X11-unix -d gen_context(system_u:object_r:xdm_tmp_t,s0) - /tmp/\.X11-unix/.* -s <> -@@ -58,10 +60,14 @@ +-/tmp/\.X11-unix -d gen_context(system_u:object_r:xdm_tmp_t,s0) +-/tmp/\.X11-unix/.* -s <> ++/tmp/\.X11-unix(/.*)? gen_context(system_u:object_r:xdm_tmp_t,s0) + + # + # /usr # /usr/(s)?bin/gdm-binary -- gen_context(system_u:object_r:xdm_exec_t,s0) @@ -26633,7 +27031,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser /usr/bin/xauth -- gen_context(system_u:object_r:xauth_exec_t,s0) /usr/bin/Xorg -- gen_context(system_u:object_r:xserver_exec_t,s0) ifdef(`distro_debian', ` -@@ -89,17 +95,37 @@ +@@ -89,17 +94,37 @@ /var/[xgk]dm(/.*)? gen_context(system_u:object_r:xserver_log_t,s0) @@ -26676,7 +27074,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser +/var/lib/nxserver/home/\.Xauthority.* -- gen_context(system_u:object_r:xauth_home_t,s0) diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xserver.if serefpolicy-3.7.7/policy/modules/services/xserver.if --- nsaserefpolicy/policy/modules/services/xserver.if 2009-12-04 09:43:33.000000000 -0500 -+++ serefpolicy-3.7.7/policy/modules/services/xserver.if 2010-01-11 09:53:58.000000000 -0500 ++++ serefpolicy-3.7.7/policy/modules/services/xserver.if 2010-01-14 14:21:14.000000000 -0500 @@ -19,7 +19,7 @@ interface(`xserver_restricted_role',` gen_require(` @@ -26686,7 +27084,15 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser type iceauth_t, iceauth_exec_t, iceauth_home_t; type xauth_t, xauth_exec_t, xauth_home_t; ') -@@ -56,6 +56,13 @@ +@@ -45,6 +45,7 @@ + manage_files_pattern($2, user_fonts_cache_t, user_fonts_cache_t) + + stream_connect_pattern($2, xserver_tmp_t, xserver_tmp_t, xserver_t) ++ allow $2 xserver_tmp_t:sock_file unlink; + files_search_tmp($2) + + # Communicate via System V shared memory. +@@ -56,6 +57,13 @@ domtrans_pattern($2, iceauth_exec_t, iceauth_t) @@ -26700,7 +27106,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser allow $2 iceauth_home_t:file read_file_perms; domtrans_pattern($2, xauth_exec_t, xauth_t) -@@ -71,9 +78,10 @@ +@@ -71,9 +79,10 @@ # for when /tmp/.X11-unix is created by the system allow $2 xdm_t:fd use; allow $2 xdm_t:fifo_file { getattr read write ioctl }; @@ -26713,7 +27119,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser # Client read xserver shm allow $2 xserver_t:fd use; -@@ -96,7 +104,6 @@ +@@ -96,7 +105,6 @@ miscfiles_read_fonts($2) xserver_common_x_domain_template(user, $2) @@ -26721,7 +27127,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser xserver_xsession_entry_type($2) xserver_dontaudit_write_log($2) xserver_stream_connect_xdm($2) -@@ -104,6 +111,7 @@ +@@ -104,6 +112,7 @@ xserver_read_xdm_pid($2) # gnome-session creates socket under /tmp/.ICE-unix/ xserver_create_xdm_tmp_sockets($2) @@ -26729,7 +27135,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser # Needed for escd, remove if we get escd policy xserver_manage_xdm_tmp_files($2) -@@ -162,7 +170,6 @@ +@@ -162,7 +171,6 @@ manage_files_pattern($2, user_fonts_config_t, user_fonts_config_t) relabel_dirs_pattern($2, user_fonts_config_t, user_fonts_config_t) relabel_files_pattern($2, user_fonts_config_t, user_fonts_config_t) @@ -26737,7 +27143,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser ') ####################################### -@@ -197,7 +204,7 @@ +@@ -197,7 +205,7 @@ allow $1 xserver_t:process signal; # Read /tmp/.X0-lock @@ -26746,7 +27152,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser # Client read xserver shm allow $1 xserver_t:fd use; -@@ -260,12 +267,12 @@ +@@ -260,12 +268,12 @@ allow $1 self:unix_stream_socket { connectto create_stream_socket_perms }; # Read .Xauthority file @@ -26762,7 +27168,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser allow $1 xdm_tmp_t:dir search; allow $1 xdm_tmp_t:sock_file { read write }; dontaudit $1 xdm_t:tcp_socket { read write }; -@@ -445,6 +452,7 @@ +@@ -445,6 +453,7 @@ xserver_use_user_fonts($2) xserver_read_xdm_tmp_files($2) @@ -26770,7 +27176,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser # X object manager xserver_object_types_template($1) -@@ -514,6 +522,12 @@ +@@ -514,6 +523,12 @@ ') domtrans_pattern($1, xauth_exec_t, xauth_t) @@ -26783,7 +27189,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser ') ######################################## -@@ -567,6 +581,7 @@ +@@ -567,6 +582,7 @@ allow $1 xauth_home_t:file read_file_perms; userdom_search_user_home_dirs($1) @@ -26791,7 +27197,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser ') ######################################## -@@ -774,7 +789,7 @@ +@@ -774,7 +790,7 @@ ') files_search_pids($1) @@ -26800,7 +27206,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/xser ') ######################################## -@@ -1219,3 +1234,329 @@ +@@ -1219,3 +1235,329 @@ typeattribute $1 x_domain; typeattribute $1 xserver_unconfined_type; ') @@ -28404,6 +28810,20 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/getty. dev_read_sysfs(getty_t) +diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/hotplug.te serefpolicy-3.7.7/policy/modules/system/hotplug.te +--- nsaserefpolicy/policy/modules/system/hotplug.te 2009-08-14 16:14:31.000000000 -0400 ++++ serefpolicy-3.7.7/policy/modules/system/hotplug.te 2010-01-14 09:14:35.000000000 -0500 +@@ -125,6 +125,10 @@ + ') + + optional_policy(` ++ brctl_domtrans(hotplug_t) ++') ++ ++optional_policy(` + consoletype_exec(hotplug_t) + ') + diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.fc serefpolicy-3.7.7/policy/modules/system/init.fc --- nsaserefpolicy/policy/modules/system/init.fc 2009-07-14 14:19:57.000000000 -0400 +++ serefpolicy-3.7.7/policy/modules/system/init.fc 2010-01-11 09:53:58.000000000 -0500 @@ -28432,7 +28852,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.f # /var diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.if serefpolicy-3.7.7/policy/modules/system/init.if --- nsaserefpolicy/policy/modules/system/init.if 2009-11-12 12:51:51.000000000 -0500 -+++ serefpolicy-3.7.7/policy/modules/system/init.if 2010-01-11 10:12:28.000000000 -0500 ++++ serefpolicy-3.7.7/policy/modules/system/init.if 2010-01-14 10:25:44.000000000 -0500 @@ -162,6 +162,7 @@ gen_require(` attribute direct_run_init, direct_init, direct_init_entry; @@ -28690,7 +29110,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.i +') diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.te serefpolicy-3.7.7/policy/modules/system/init.te --- nsaserefpolicy/policy/modules/system/init.te 2009-11-12 12:51:51.000000000 -0500 -+++ serefpolicy-3.7.7/policy/modules/system/init.te 2010-01-11 10:27:23.000000000 -0500 ++++ serefpolicy-3.7.7/policy/modules/system/init.te 2010-01-14 15:15:41.000000000 -0500 @@ -17,6 +17,20 @@ ## gen_tunable(init_upstart, false) @@ -28756,7 +29176,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t ifdef(`distro_gentoo',` allow init_t self:process { getcap setcap }; ') -@@ -189,6 +208,18 @@ +@@ -189,6 +208,22 @@ ') optional_policy(` @@ -28764,6 +29184,10 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t +') + +optional_policy(` ++ dbus_system_bus_client(init_t) ++') ++ ++optional_policy(` + # /var/run/dovecot/login/ssl-parameters.dat is a hard link to + # /var/lib/dovecot/ssl-parameters.dat and init tries to clean up + # the directory. But we do not want to allow this. @@ -28775,7 +29199,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t nscd_socket_use(init_t) ') -@@ -202,9 +233,10 @@ +@@ -202,9 +237,10 @@ # allow initrc_t self:process { getpgid setsched setpgid setrlimit getsched }; @@ -28787,7 +29211,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t # Allow IPC with self allow initrc_t self:unix_dgram_socket create_socket_perms; -@@ -217,7 +249,8 @@ +@@ -217,7 +253,8 @@ term_create_pty(initrc_t, initrc_devpts_t) # Going to single user mode @@ -28797,7 +29221,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t can_exec(initrc_t, init_script_file_type) -@@ -230,10 +263,16 @@ +@@ -230,10 +267,16 @@ allow initrc_t initrc_var_run_t:file manage_file_perms; files_pid_filetrans(initrc_t, initrc_var_run_t, file) @@ -28816,7 +29240,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t files_tmp_filetrans(initrc_t, initrc_tmp_t, { file dir }) init_write_initctl(initrc_t) -@@ -246,13 +285,19 @@ +@@ -246,13 +289,19 @@ kernel_clear_ring_buffer(initrc_t) kernel_get_sysvipc_info(initrc_t) kernel_read_all_sysctls(initrc_t) @@ -28838,7 +29262,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t corenet_all_recvfrom_unlabeled(initrc_t) corenet_all_recvfrom_netlabel(initrc_t) -@@ -272,16 +317,66 @@ +@@ -272,16 +321,66 @@ dev_rw_sysfs(initrc_t) dev_list_usbfs(initrc_t) dev_read_framebuffer(initrc_t) @@ -28906,7 +29330,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t domain_kill_all_domains(initrc_t) domain_signal_all_domains(initrc_t) -@@ -291,7 +386,7 @@ +@@ -291,7 +390,7 @@ domain_sigchld_all_domains(initrc_t) domain_read_all_domains_state(initrc_t) domain_getattr_all_domains(initrc_t) @@ -28915,7 +29339,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t domain_getsession_all_domains(initrc_t) domain_use_interactive_fds(initrc_t) # for lsof which is used by alsa shutdown: -@@ -306,14 +401,15 @@ +@@ -306,14 +405,15 @@ files_getattr_all_pipes(initrc_t) files_getattr_all_sockets(initrc_t) files_purge_tmp(initrc_t) @@ -28933,7 +29357,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t files_exec_etc_files(initrc_t) files_read_usr_files(initrc_t) files_manage_urandom_seed(initrc_t) -@@ -324,48 +420,16 @@ +@@ -324,48 +424,16 @@ files_mounton_isid_type_dirs(initrc_t) files_list_default(initrc_t) files_mounton_default(initrc_t) @@ -28986,7 +29410,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t logging_send_syslog_msg(initrc_t) logging_manage_generic_logs(initrc_t) logging_read_all_logs(initrc_t) -@@ -374,19 +438,22 @@ +@@ -374,19 +442,22 @@ miscfiles_read_localization(initrc_t) # slapd needs to read cert files from its initscript @@ -29010,7 +29434,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t ifdef(`distro_debian',` dev_setattr_generic_dirs(initrc_t) -@@ -422,16 +489,12 @@ +@@ -422,16 +493,12 @@ # init scripts touch this clock_dontaudit_write_adjtime(initrc_t) @@ -29028,7 +29452,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t optional_policy(` arpwatch_manage_data_files(initrc_t) -@@ -450,11 +513,9 @@ +@@ -450,11 +517,9 @@ # Red Hat systems seem to have a stray # fd open from the initrd @@ -29041,7 +29465,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t # These seem to be from the initrd # during device initialization: dev_create_generic_dirs(initrc_t) -@@ -464,6 +525,7 @@ +@@ -464,6 +529,7 @@ storage_raw_read_fixed_disk(initrc_t) storage_raw_write_fixed_disk(initrc_t) @@ -29049,7 +29473,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t files_create_boot_flag(initrc_t) files_rw_boot_symlinks(initrc_t) # wants to read /.fonts directory -@@ -492,15 +554,26 @@ +@@ -492,15 +558,26 @@ optional_policy(` bind_manage_config_dirs(initrc_t) bind_write_config(initrc_t) @@ -29076,7 +29500,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t ') optional_policy(` -@@ -515,6 +588,33 @@ +@@ -515,6 +592,33 @@ ') ') @@ -29110,7 +29534,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t optional_policy(` amavis_search_lib(initrc_t) amavis_setattr_pid_files(initrc_t) -@@ -567,10 +667,19 @@ +@@ -567,10 +671,19 @@ dbus_connect_system_bus(initrc_t) dbus_system_bus_client(initrc_t) dbus_read_config(initrc_t) @@ -29130,7 +29554,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t ') optional_policy(` -@@ -590,6 +699,10 @@ +@@ -590,6 +703,10 @@ ') optional_policy(` @@ -29141,7 +29565,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t dev_read_usbfs(initrc_t) # init scripts run /etc/hotplug/usb.rc -@@ -646,20 +759,20 @@ +@@ -646,20 +763,20 @@ ') optional_policy(` @@ -29168,7 +29592,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t optional_policy(` ifdef(`distro_redhat',` -@@ -668,6 +781,7 @@ +@@ -668,6 +785,7 @@ mysql_stream_connect(initrc_t) mysql_write_log(initrc_t) @@ -29176,7 +29600,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t ') optional_policy(` -@@ -700,7 +814,6 @@ +@@ -700,7 +818,6 @@ ') optional_policy(` @@ -29184,7 +29608,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t fs_write_ramfs_sockets(initrc_t) fs_search_ramfs(initrc_t) -@@ -722,8 +835,6 @@ +@@ -722,8 +839,6 @@ # bash tries ioctl for some reason files_dontaudit_ioctl_all_pids(initrc_t) @@ -29193,7 +29617,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t ') optional_policy(` -@@ -736,13 +847,16 @@ +@@ -736,13 +851,16 @@ squid_manage_logs(initrc_t) ') @@ -29210,7 +29634,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t ') optional_policy(` -@@ -751,6 +865,7 @@ +@@ -751,6 +869,7 @@ optional_policy(` udev_rw_db(initrc_t) @@ -29218,7 +29642,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t ') optional_policy(` -@@ -758,7 +873,17 @@ +@@ -758,7 +877,17 @@ ') optional_policy(` @@ -29236,7 +29660,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t ifdef(`distro_redhat',` # system-config-services causes avc messages that should be dontaudited -@@ -768,6 +893,21 @@ +@@ -768,6 +897,21 @@ optional_policy(` mono_domtrans(initrc_t) ') @@ -29258,7 +29682,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/init.t ') optional_policy(` -@@ -793,3 +933,31 @@ +@@ -793,3 +937,31 @@ optional_policy(` zebra_read_config(initrc_t) ') @@ -31384,7 +31808,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/selinu +') diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/selinuxutil.te serefpolicy-3.7.7/policy/modules/system/selinuxutil.te --- nsaserefpolicy/policy/modules/system/selinuxutil.te 2009-08-14 16:14:31.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/system/selinuxutil.te 2010-01-11 09:53:58.000000000 -0500 ++++ serefpolicy-3.7.7/policy/modules/system/selinuxutil.te 2010-01-14 10:26:10.000000000 -0500 @@ -23,6 +23,9 @@ type selinux_config_t; files_type(selinux_config_t) @@ -31442,7 +31866,15 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/selinu ######################################## # # Checkpolicy local policy -@@ -191,15 +204,6 @@ +@@ -177,6 +190,7 @@ + + init_use_script_fds(load_policy_t) + init_use_script_ptys(load_policy_t) ++init_write_script_pipes(load_policy_t) + + miscfiles_read_localization(load_policy_t) + +@@ -191,15 +205,6 @@ ') ') @@ -31458,7 +31890,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/selinu ######################################## # # Newrole local policy -@@ -217,7 +221,7 @@ +@@ -217,7 +222,7 @@ allow newrole_t self:msg { send receive }; allow newrole_t self:unix_dgram_socket sendto; allow newrole_t self:unix_stream_socket { create_stream_socket_perms connectto }; @@ -31467,7 +31899,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/selinu read_files_pattern(newrole_t, default_context_t, default_context_t) read_lnk_files_pattern(newrole_t, default_context_t, default_context_t) -@@ -270,12 +274,14 @@ +@@ -270,12 +275,14 @@ init_rw_utmp(newrole_t) init_use_fds(newrole_t) @@ -31482,7 +31914,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/selinu # for some PAM modules and for cwd userdom_dontaudit_search_user_home_content(newrole_t) userdom_search_user_home_dirs(newrole_t) -@@ -313,6 +319,8 @@ +@@ -313,6 +320,8 @@ kernel_rw_pipes(restorecond_t) kernel_read_system_state(restorecond_t) @@ -31491,7 +31923,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/selinu fs_relabelfrom_noxattr_fs(restorecond_t) fs_dontaudit_list_nfs(restorecond_t) fs_getattr_xattr_fs(restorecond_t) -@@ -336,6 +344,8 @@ +@@ -336,6 +345,8 @@ seutil_libselinux_linked(restorecond_t) @@ -31500,7 +31932,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/selinu ifdef(`distro_ubuntu',` optional_policy(` unconfined_domain(restorecond_t) -@@ -354,7 +364,7 @@ +@@ -354,7 +365,7 @@ allow run_init_t self:process setexec; allow run_init_t self:capability setuid; allow run_init_t self:fifo_file rw_file_perms; @@ -31509,7 +31941,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/selinu # often the administrator runs such programs from a directory that is owned # by a different user or has restrictive SE permissions, do not want to audit -@@ -383,7 +393,6 @@ +@@ -383,7 +394,6 @@ auth_use_nsswitch(run_init_t) auth_domtrans_chk_passwd(run_init_t) @@ -31517,7 +31949,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/selinu auth_dontaudit_read_shadow(run_init_t) init_spec_domtrans_script(run_init_t) -@@ -406,6 +415,10 @@ +@@ -406,6 +416,10 @@ ') ') @@ -31528,7 +31960,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/selinu ifdef(`distro_ubuntu',` optional_policy(` unconfined_domain(run_init_t) -@@ -421,61 +434,22 @@ +@@ -421,61 +435,22 @@ # semodule local policy # @@ -31598,7 +32030,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/selinu # netfilter_contexts: seutil_manage_default_contexts(semanage_t) -@@ -484,12 +458,23 @@ +@@ -484,12 +459,23 @@ files_read_var_lib_symlinks(semanage_t) ') @@ -31622,7 +32054,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/selinu # cjp: need a more general way to handle this: ifdef(`enable_mls',` # read secadm tmp files -@@ -499,111 +484,43 @@ +@@ -499,111 +485,43 @@ userdom_read_user_tmp_files(semanage_t) ') @@ -32288,7 +32720,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/unconf -') diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/unconfined.if serefpolicy-3.7.7/policy/modules/system/unconfined.if --- nsaserefpolicy/policy/modules/system/unconfined.if 2009-07-14 14:19:57.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/system/unconfined.if 2010-01-11 09:53:58.000000000 -0500 ++++ serefpolicy-3.7.7/policy/modules/system/unconfined.if 2010-01-13 14:39:35.000000000 -0500 @@ -12,14 +12,13 @@ # interface(`unconfined_domain_noaudit',` @@ -32360,7 +32792,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/unconf ') optional_policy(` -@@ -111,16 +123,16 @@ +@@ -111,16 +123,15 @@ ## # interface(`unconfined_domain',` @@ -32373,7 +32805,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/unconf tunable_policy(`allow_execheap',` auditallow $1 self:process execheap; ') - +- -# Turn off this audit for FC5 -# tunable_policy(`allow_execmem',` -# auditallow $1 self:process execmem; @@ -32381,7 +32813,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/unconf ') ######################################## -@@ -173,411 +185,3 @@ +@@ -173,411 +184,3 @@ refpolicywarn(`$0($1) has been deprecated.') ') @@ -33027,12 +33459,13 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/unconf -') diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/userdomain.fc serefpolicy-3.7.7/policy/modules/system/userdomain.fc --- nsaserefpolicy/policy/modules/system/userdomain.fc 2009-07-14 14:19:57.000000000 -0400 -+++ serefpolicy-3.7.7/policy/modules/system/userdomain.fc 2010-01-11 09:53:58.000000000 -0500 -@@ -1,4 +1,10 @@ ++++ serefpolicy-3.7.7/policy/modules/system/userdomain.fc 2010-01-14 09:22:34.000000000 -0500 +@@ -1,4 +1,11 @@ HOME_DIR -d gen_context(system_u:object_r:user_home_dir_t,s0-mls_systemhigh) +HOME_DIR -l gen_context(system_u:object_r:user_home_dir_t,s0-mls_systemhigh) HOME_DIR/.+ gen_context(system_u:object_r:user_home_t,s0) - ++/tmp/\.ICE-unix(/.*)? gen_context(system_u:object_r:user_tmp_t,s0) /tmp/gconfd-USER -d gen_context(system_u:object_r:user_tmp_t,s0) +/root(/.*)? gen_context(system_u:object_r:admin_home_t,s0) +/dev/shm/pulse-shm.* gen_context(system_u:object_r:user_tmpfs_t,s0) @@ -35549,7 +35982,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/xen.if ## diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/xen.te serefpolicy-3.7.7/policy/modules/system/xen.te --- nsaserefpolicy/policy/modules/system/xen.te 2009-11-25 11:47:19.000000000 -0500 -+++ serefpolicy-3.7.7/policy/modules/system/xen.te 2010-01-11 09:53:58.000000000 -0500 ++++ serefpolicy-3.7.7/policy/modules/system/xen.te 2010-01-12 10:27:16.000000000 -0500 @@ -85,6 +85,7 @@ type xenconsoled_t; type xenconsoled_exec_t; @@ -35602,7 +36035,7 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/xen.te storage_raw_read_fixed_disk(xenstored_t) storage_raw_write_fixed_disk(xenstored_t) storage_raw_read_removable_device(xenstored_t) -@@ -421,6 +431,12 @@ +@@ -421,7 +431,14 @@ xen_stream_connect_xenstore(xm_t) optional_policy(` @@ -35613,9 +36046,11 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/xen.te + +optional_policy(` virt_manage_images(xm_t) ++ virt_manage_config(xm_t) virt_stream_connect(xm_t) ') -@@ -438,6 +454,8 @@ + +@@ -438,6 +455,8 @@ fs_manage_xenfs_dirs(xm_ssh_t) fs_manage_xenfs_files(xm_ssh_t) @@ -35626,7 +36061,16 @@ diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/system/xen.te files_search_mnt(xend_t) diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/support/obj_perm_sets.spt serefpolicy-3.7.7/policy/support/obj_perm_sets.spt --- nsaserefpolicy/policy/support/obj_perm_sets.spt 2009-11-25 11:47:19.000000000 -0500 -+++ serefpolicy-3.7.7/policy/support/obj_perm_sets.spt 2010-01-11 09:53:58.000000000 -0500 ++++ serefpolicy-3.7.7/policy/support/obj_perm_sets.spt 2010-01-14 09:16:41.000000000 -0500 +@@ -28,7 +28,7 @@ + # + # All socket classes. + # +-define(`socket_class_set', `{ tcp_socket udp_socket rawip_socket netlink_socket packet_socket unix_stream_socket unix_dgram_socket appletalk_socket netlink_route_socket netlink_firewall_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_ip6fw_socket netlink_dnrt_socket netlink_kobject_uevent_socket }') ++define(`socket_class_set', `{ tcp_socket udp_socket rawip_socket netlink_socket packet_socket unix_stream_socket unix_dgram_socket appletalk_socket netlink_route_socket netlink_firewall_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_ip6fw_socket netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket }') + + + # @@ -199,12 +199,14 @@ # define(`getattr_file_perms',`{ getattr }') diff --git a/selinux-policy.spec b/selinux-policy.spec index 91386ed..0b0225e 100644 --- a/selinux-policy.spec +++ b/selinux-policy.spec @@ -20,7 +20,7 @@ Summary: SELinux policy configuration Name: selinux-policy Version: 3.7.7 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ Group: System Environment/Base Source: serefpolicy-%{version}.tgz @@ -455,6 +455,10 @@ exit 0 %endif %changelog +* Thu Jan 7 2010 Dan Walsh 3.7.7-2 +- Turn on puppet policy +- Update to dgrift git policy + * Mon Jan 7 2010 Dan Walsh 3.7.7-1 - Move users file to selection by spec file. - Allow vncserver to run as unconfined_u:unconfined_r:unconfined_t