All of lore.kernel.org
 help / color / mirror / Atom feed
From: domg472@gmail.com (Dominick Grift)
To: refpolicy@oss.tresys.com
Subject: [refpolicy] puppet.patch - updated
Date: Sun, 6 Sep 2009 18:23:43 +0200	[thread overview]
Message-ID: <20090906162341.GA4976@notebook3.grift.internal> (raw)
In-Reply-To: <4AA3E02F.7040500@cobham.com>

On Sun, Sep 06, 2009 at 12:15:43PM -0400, Craig Grube wrote:
> I tested the policy and attached a modified version that mostly works.  
> The main issue I encountered was puppetmaster's level of access to types  
> puppet_var_run_t, puppet_var_lib_t, puppet_tmp_t were insufficient.  I  
> replicated puppet's accesses for puppetmaster and it works.

So who owns these files? puppet or puppetmaster? Do they both create them (both own them?)
>
> There are still some AVCs being generated including these:
>
> For puppetmaster:
> 	- Wants write, read, setattr to puppet_log_t files.

writing to log files is a bad idea. puppetmaster should append  instead of writing. (consider reporting that to puppet) if puppetmaster can write to its log files it can potentially wipe its trail.

> For puppet:
> 	- Appears to redirect output (not sure at this point if stderr or  
> stdout) from system utilities to /dev/null which results in AVCs like 
> this:
>
> type=AVC msg=audit(1252178670.560:136): avc:  denied  { use } for  
> pid=1694 comm="modprobe" path="/dev/null" dev=tmpfs ino=400  
> scontext=system_u:system_r:insmod_t tcontext=system_u:system_r:puppet_t  
> tclass=fd
>
> I am seening these for insmod_t, ldconfig_t, initrc_t, and rpm_script_t.  
>  I had a 'dontaudit domain puppet_t:fd use'  to squash these AVCs, which 
> does not appear from my testing to negatively effect puppet.
ok if required i guessno harm in adding it. however is there no interface available that you can use?
check the domain interface file for that
> 	
> Craig
>
> Dominick Grift wrote:
>> On Fri, Sep 04, 2009 at 08:24:16AM -0400, Craig Grube wrote:
>>
>> I already made some modification to my own take of the policy. More modification are probably to follow.
>> You can find my current (up-to-date) policy for puppet here:
>>
>> http://82.197.205.60/~dgrift/stuff/modules/puppet/
>>
>> Again, This policy is untested. there are likely errors left.
>>

> 
> policy_module(puppet, 0.0.1)
> 
> ########################################
> #
> # Puppet personal declarations
> #
> 
> type puppet_t;
> type puppet_exec_t;
> init_daemon_domain(puppet_t, puppet_exec_t)
> 
> type puppet_initrc_exec_t;
> init_script_file(puppet_initrc_exec_t);
> 
> type puppet_log_t;
> logging_log_file(puppet_log_t)
> 
> type puppet_var_lib_t;
> files_type(puppet_var_lib_t)
> 
> type puppet_var_run_t;
> files_pid_file(puppet_var_run_t)
> 
> type puppet_etc_t;
> files_config_file(puppet_etc_t)
> 
> type puppet_tmp_t;
> files_tmp_file(puppet_tmp_t)
> 
> ########################################
> #
> # Pupper master personal declarations
> #
> 
> type puppetmaster_t;
> type puppetmaster_exec_t;
> init_daemon_domain(puppetmaster_t, puppetmaster_exec_t)
> 
> type puppetmasterd_initrc_exec_t;
> init_script_file(puppetmasterd_initrc_exec_t)
> 
> ########################################
> #
> # Puppet personal policy
> #
> 
> allow puppet_t self:capability { sys_admin fowner fsetid setuid setgid sys_rawio dac_override sys_nice sys_ptrace sys_tty_config };
> allow puppet_t self:fifo_file rw_fifo_file_perms;
> allow puppet_t self:netlink_route_socket create_netlink_socket_perms;
> allow puppet_t self:process { signal signull getsched setsched };
> allow puppet_t self:tcp_socket create_stream_socket_perms;
> allow puppet_t self:udp_socket create_socket_perms;
> 
> search_dirs_pattern(puppet_t, puppet_etc_t, puppet_etc_t)
> read_files_pattern(puppet_t, puppet_etc_t, puppet_etc_t)
> 
> manage_dirs_pattern(puppet_t ,puppet_var_lib_t, puppet_var_lib_t)
> manage_files_pattern(puppet_t, puppet_var_lib_t, puppet_var_lib_t)
> 
> manage_dirs_pattern(puppet_t, puppet_var_run_t, puppet_var_run_t)
> manage_files_pattern(puppet_t, puppet_var_run_t, puppet_var_run_t)
> files_pid_filetrans(puppet_t, puppet_var_run_t, { file dir })
> 
> manage_dirs_pattern(puppet_t, puppet_log_t, puppet_log_t)
> create_files_pattern(puppet_t, puppet_log_t, puppet_log_t)
> append_files_pattern(puppet_t, puppet_log_t, puppet_log_t)
> logging_log_filetrans(puppet_t, puppet_log_t, { file dir })
> 
> manage_dirs_pattern(puppet_t, puppet_tmp_t, puppet_tmp_t)
> manage_files_pattern(puppet_t, puppet_tmp_t, puppet_tmp_t)
> files_tmp_filetrans(puppet_t, puppet_tmp_t, { file dir })
> 
> auth_manage_all_files_except_shadow(puppet_t)
> auth_relabel_all_files_except_shadow(puppet_t)
> 
> corenet_sendrecv_puppet_client_packets(puppet_t)
> corenet_tcp_connect_puppet_port(puppet_t)
> 
> corenet_all_recvfrom_netlabel(puppet_t)
> corenet_all_recvfrom_unlabeled(puppet_t)
> 
> corenet_tcp_sendrecv_all_if(puppet_t)
> corenet_tcp_sendrecv_all_nodes(puppet_t)
> 
> corenet_tcp_bind_all_nodes(puppet_t)
> 
> corecmd_exec_bin(puppet_t)
> corecmd_exec_shell(puppet_t)
> 
> dev_read_rand(puppet_t)
> dev_read_sysfs(puppet_t)
> dev_read_urand(puppet_t)
> 
> domain_read_all_domains_state(puppet_t)
> 
> files_read_etc_files(puppet_t)
> 
> hostname_exec(puppet_t)
> 
> init_all_labeled_script_domtrans(puppet_t)
> init_domtrans_script(puppet_t)
> init_read_utmp(puppet_t)
> init_signull_script(puppet_t)
> 
> kernel_dontaudit_search_sysctl(puppet_t)
> kernel_dontaudit_search_kernel_sysctl(puppet_t)
>                         
> kernel_read_system_state(puppet_t)
> kernel_read_crypto_sysctls(puppet_t)
> 
> logging_send_syslog_msg(puppet_t)
> 
> miscfiles_read_hwdata(puppet_t)
> miscfiles_read_localization(puppet_t)
>                                                                                                              
> selinux_search_fs(puppet_t)
> selinux_set_all_booleans(puppet_t)
> selinux_set_generic_booleans(puppet_t)
> 
> seutil_domtrans_setfiles(puppet_t)
> seutil_domtrans_semanage(puppet_t)                                                                                                                
> seutil_manage_default_contexts(puppet_t)
> seutil_manage_file_contexts(puppet_t)
> 
> sysnet_dns_name_resolve(puppet_t)
> sysnet_run_ifconfig(puppet_t, system_r)
> 
> usermanage_domtrans_groupadd(puppet_t)
> usermanage_domtrans_useradd(puppet_t)
> 
> optional_policy(`
> 	consoletype_domtrans(puppet_t)
> ')
>                                                                                                                                          
> optional_policy(`
> 	rpm_domtrans(puppet_t)
> ')
> 
> optional_policy(`
>         unconfined_domain(puppet_t)
> ')
> 
> ########################################
> #
> # Pupper master personal policy
> #
> 
> allow puppetmaster_t self:capability { dac_read_search dac_override setuid setgid fowner chown fsetid sys_tty_config };
> allow puppetmaster_t self:fifo_file rw_fifo_file_perms;;
> allow puppetmaster_t self:netlink_route_socket create_netlink_socket_perms;
> allow puppetmaster_t self:process signal_perms;
> allow puppetmaster_t self:socket create;
> allow puppetmaster_t self:tcp_socket create_stream_socket_perms;
> allow puppetmaster_t self:udp_socket create_socket_perms;
> 
> list_dirs_pattern(puppetmaster_t, puppet_etc_t, puppet_etc_t)
> read_files_pattern(puppetmaster_t, puppet_etc_t, puppet_etc_t)
> 
> manage_dirs_pattern(puppetmaster_t ,puppet_var_lib_t, puppet_var_lib_t)
> manage_files_pattern(puppetmaster_t, puppet_var_lib_t, puppet_var_lib_t)
> 
> manage_dirs_pattern(puppetmaster_t, puppet_var_run_t, puppet_var_run_t)
> manage_files_pattern(puppetmaster_t, puppet_var_run_t, puppet_var_run_t)
> files_pid_filetrans(puppetmaster_t, puppet_var_run_t, { file dir })
> 
> manage_dirs_pattern(puppetmaster_t, puppet_log_t, puppet_log_t)
> create_files_pattern(puppetmaster_t, puppet_log_t, puppet_log_t)
> append_files_pattern(puppetmaster_t, puppet_log_t, puppet_log_t)
> logging_log_filetrans(puppetmaster_t, puppet_log_t, { file dir })
> 
> manage_dirs_pattern(puppetmaster_t, puppet_tmp_t, puppet_tmp_t)
> manage_files_pattern(puppetmaster_t, puppet_tmp_t, puppet_tmp_t)
> files_tmp_filetrans(puppetmaster_t, puppet_tmp_t, { file dir })
> 
> corenet_sendrecv_puppet_server_packets(puppetmaster_t)
> corenet_tcp_bind_puppet_port(puppetmaster_t)
> 
> corenet_all_recvfrom_netlabel(puppetmaster_t)
> corenet_all_recvfrom_unlabeled(puppetmaster_t)
> 
> corenet_tcp_sendrecv_all_if(puppetmaster_t)
> corenet_tcp_sendrecv_all_nodes(puppetmaster_t)
> 
> corenet_tcp_bind_all_nodes(puppetmaster_t)
> 
> corecmd_exec_bin(puppetmaster_t)
> corecmd_exec_shell(puppetmaster_t)
> 
> files_read_etc_files(puppetmaster_t)
> 
> dev_read_rand(puppetmaster_t)
> dev_read_urand(puppetmaster_t)
> 
> domain_read_all_domains_state(puppetmaster_t)
>                                 
> hostname_exec(puppetmaster_t)
> 
> kernel_read_system_state(puppetmaster_t)
> kernel_read_crypto_sysctls(puppetmaster_t)
> 
> logging_send_syslog_msg(puppetmaster_t)
>                                                                                                                           
> miscfiles_read_localization(puppetmaster_t)
> 
> sysnet_dns_name_resolve(puppetmaster_t)
> sysnet_run_ifconfig(puppetmaster_t, system_r)
> 
> optional_policy(`    
> 	rpm_domtrans(puppetmaster_t)
> 	rpm_read_db(puppetmaster_t)
> ')

> _______________________________________________
> refpolicy mailing list
> refpolicy at oss.tresys.com
> http://oss.tresys.com/mailman/listinfo/refpolicy

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
Url : http://oss.tresys.com/pipermail/refpolicy/attachments/20090906/5745a543/attachment-0001.bin 

  reply	other threads:[~2009-09-06 16:23 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-04 12:24 [refpolicy] puppet.patch - updated Craig Grube
2009-09-04 13:53 ` Dominick Grift
2009-09-04 14:13 ` Dominick Grift
2009-09-05  9:01 ` Dominick Grift
2009-09-05  9:38 ` Dominick Grift
2009-09-06 16:15   ` Craig Grube
2009-09-06 16:23     ` Dominick Grift [this message]
2009-09-07 18:39       ` Craig Grube
2009-09-08 10:28         ` Dominick Grift
2009-09-08 23:23           ` Craig Grube
2009-09-09  9:07             ` Dominick Grift
2009-09-10 11:14               ` Craig Grube

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090906162341.GA4976@notebook3.grift.internal \
    --to=domg472@gmail.com \
    --cc=refpolicy@oss.tresys.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.