--- nsaserefpolicy/policy/modules/services/ppp.fc 2008-08-07 11:15:11.000000000 -0400 +++ serefpolicy-3.5.5/policy/modules/services/ppp.fc 2008-08-14 13:53:54.000000000 -0400 @@ -33,3 +33,5 @@ /var/log/ppp-connect-errors.* -- gen_context(system_u:object_r:pppd_log_t,s0) /var/log/ppp/.* -- gen_context(system_u:object_r:pppd_log_t,s0) + +/etc/rc.d/init.d/ppp -- gen_context(system_u:object_r:pppd_script_exec_t,s0) --- nsaserefpolicy/policy/modules/services/ppp.if 2008-08-07 11:15:11.000000000 -0400 +++ serefpolicy-3.5.5/policy/modules/services/ppp.if 2008-08-14 13:53:54.000000000 -0400 @@ -76,6 +76,24 @@ ######################################## ## +## Send a generic signull to PPP. +## +## +## +## Domain allowed access. +## +## +# +interface(`ppp_signull',` + gen_require(` + type pppd_t; + ') + + allow $1 pppd_t:process signull; +') + +######################################## +## ## Execute domain in the ppp domain. ## ## @@ -309,33 +327,36 @@ type pppd_etc_rw_t, pppd_var_run_t; type pptp_t, pptp_log_t, pptp_var_run_t; + type pppd_script_exec_t; ') allow $1 pppd_t:process { ptrace signal_perms getattr }; ps_process_pattern($1, pppd_t) files_list_tmp($1) - manage_files_pattern($1, pppd_tmp_t, pppd_tmp_t) + admin_pattern($1, pppd_tmp_t, pppd_tmp_t) logging_list_logs($1) - manage_files_pattern($1, pppd_log_t, pppd_log_t) + admin_pattern($1, pppd_log_t, pppd_log_t) - manage_files_pattern($1, pppd_lock_t, pppd_lock_t) + admin_pattern($1, pppd_lock_t, pppd_lock_t) files_list_etc($1) - manage_files_pattern($1, pppd_etc_t, pppd_etc_t) + admin_pattern($1, pppd_etc_t, pppd_etc_t) + + admin_pattern($1, pppd_etc_rw_t, pppd_etc_rw_t) - manage_files_pattern($1, pppd_etc_rw_t, pppd_etc_rw_t) + admin_pattern($1, pppd_secret_t, pppd_secret_t) - manage_files_pattern($1, pppd_secret_t, pppd_secret_t) + admin_pattern($1, pppd_script_exec_t) files_list_pids($1) - manage_files_pattern($1, pppd_var_run_t, pppd_var_run_t) + admin_pattern($1, pppd_var_run_t, pppd_var_run_t) allow $1 pptp_t:process { ptrace signal_perms getattr }; ps_process_pattern($1, pptp_t) - manage_files_pattern($1, pptp_log_t, pptp_log_t) + admin_pattern($1, pptp_log_t, pptp_log_t) - manage_files_pattern($1, pptp_var_run_t, pptp_var_run_t) + admin_pattern($1, pptp_var_run_t, pptp_var_run_t) ') --- nsaserefpolicy/policy/modules/services/ppp.te 2008-08-07 11:15:11.000000000 -0400 +++ serefpolicy-3.5.5/policy/modules/services/ppp.te 2008-08-14 13:53:54.000000000 -0400 @@ -71,7 +71,7 @@ # PPPD Local policy # -allow pppd_t self:capability { net_admin setuid setgid fsetid fowner net_raw dac_override }; +allow pppd_t self:capability { kill net_admin setuid setgid fsetid fowner net_raw dac_override }; dontaudit pppd_t self:capability sys_tty_config; allow pppd_t self:process signal; allow pppd_t self:fifo_file rw_fifo_file_perms; @@ -116,7 +116,7 @@ kernel_read_kernel_sysctls(pppd_t) kernel_read_system_state(pppd_t) -kernel_read_net_sysctls(pppd_t) +kernel_rw_net_sysctls(pppd_t) kernel_read_network_state(pppd_t) kernel_load_module(pppd_t) @@ -197,6 +197,12 @@ optional_policy(` mta_send_mail(pppd_t) + mta_mailcontent(pppd_etc_t) + mta_mailcontent(pppd_etc_rw_t) +') + +optional_policy(` + networkmanager_signal(pppd_t) ') optional_policy(` @@ -289,6 +295,14 @@ ') optional_policy(` + dbus_system_domain(pppd_t, pppd_exec_t) + + optional_policy(` + networkmanager_dbus_chat(pppd_t) + ') +') + +optional_policy(` hostname_exec(pptp_t) ')