| 
					
				 | 
			
			
				@@ -1,212 +0,0 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-policy_module(dirsrv,1.0.0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-######################################## 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Declarations 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# NGK - this can go away when bz 478629, bz 523548, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# and bz 523771 are addressed.  See the notes below 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# where we work around those issues. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-require { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    type snmpd_var_lib_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    type snmpd_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# main daemon 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_exec_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-domain_type(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-init_daemon_domain(dirsrv_t, dirsrv_exec_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# snmp subagent daemon 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_snmp_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_snmp_exec_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-domain_type(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-init_daemon_domain(dirsrv_snmp_t, dirsrv_snmp_exec_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# var/lib files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_var_lib_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_type(dirsrv_var_lib_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# log files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_var_log_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-logging_log_file(dirsrv_var_log_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# snmp log file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_snmp_var_log_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-logging_log_file(dirsrv_snmp_var_log_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# pid files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_var_run_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_pid_file(dirsrv_var_run_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# snmp pid file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_snmp_var_run_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_pid_file(dirsrv_snmp_var_run_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# lock files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_var_lock_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_lock_file(dirsrv_var_lock_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# config files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_config_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_type(dirsrv_config_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# tmp files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_tmp_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_tmp_file(dirsrv_tmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# semaphores 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_tmpfs_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_tmpfs_file(dirsrv_tmpfs_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# shared files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-type dirsrv_share_t; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_type(dirsrv_share_t); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-######################################## 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# dirsrv local policy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Some common macros 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_read_etc_files(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corecmd_search_sbin(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_read_usr_symlinks(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-miscfiles_read_localization(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-dev_read_urand(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-libs_use_ld_so(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-libs_use_shared_libs(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-allow dirsrv_t self:fifo_file { read write }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# process stuff 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-allow dirsrv_t self:process { getsched setsched setfscreate signal_perms}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-allow dirsrv_t self:capability { sys_nice setuid setgid fsetid chown dac_override fowner }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# semaphores 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-allow dirsrv_t self:sem all_sem_perms; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_files_pattern(dirsrv_t, dirsrv_tmpfs_t, dirsrv_tmpfs_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fs_tmpfs_filetrans(dirsrv_t, dirsrv_tmpfs_t, file) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# var/lib files for dirsrv 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_files_pattern(dirsrv_t, dirsrv_var_lib_t, dirsrv_var_lib_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_dirs_pattern(dirsrv_t, dirsrv_var_lib_t, dirsrv_var_lib_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_var_lib_filetrans(dirsrv_t,dirsrv_var_lib_t, { file dir sock_file }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# log files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_files_pattern(dirsrv_t, dirsrv_var_log_t, dirsrv_var_log_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_fifo_files_pattern(dirsrv_t, dirsrv_var_log_t, dirsrv_var_log_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-allow dirsrv_t dirsrv_var_log_t:dir { setattr }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-logging_log_filetrans(dirsrv_t,dirsrv_var_log_t,{ sock_file file dir }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# pid files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_files_pattern(dirsrv_t, dirsrv_var_run_t, dirsrv_var_run_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_pid_filetrans(dirsrv_t, dirsrv_var_run_t, { file sock_file }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# ldapi socket 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_sock_files_pattern(dirsrv_t, dirsrv_var_run_t, dirsrv_var_run_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# lock files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_files_pattern(dirsrv_t, dirsrv_var_lock_t, dirsrv_var_lock_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_dirs_pattern(dirsrv_t, dirsrv_var_lock_t, dirsrv_var_lock_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_lock_filetrans(dirsrv_t, dirsrv_var_lock_t, { file }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# config files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_files_pattern(dirsrv_t, dirsrv_config_t, dirsrv_config_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_dirs_pattern(dirsrv_t, dirsrv_config_t, dirsrv_config_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# tmp files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_files_pattern(dirsrv_t, dirsrv_tmp_t, dirsrv_tmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_dirs_pattern(dirsrv_t, dirsrv_tmp_t, dirsrv_tmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_tmp_filetrans(dirsrv_t, dirsrv_tmp_t, { file dir }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# system state 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fs_getattr_all_fs(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-kernel_read_system_state(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# kerberos config for SASL GSSAPI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-kerberos_read_config(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-kerberos_dontaudit_write_config(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Networking basics 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-sysnet_dns_name_resolve(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corenet_all_recvfrom_unlabeled(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corenet_all_recvfrom_netlabel(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corenet_tcp_sendrecv_generic_if(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corenet_tcp_sendrecv_generic_node(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corenet_tcp_sendrecv_all_ports(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corenet_tcp_bind_all_nodes(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corenet_tcp_bind_ldap_port(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corenet_tcp_bind_all_rpc_ports(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corenet_udp_bind_all_rpc_ports(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corenet_tcp_connect_all_ports(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corenet_sendrecv_ldap_server_packets(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corenet_sendrecv_all_client_packets(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-allow dirsrv_t self:tcp_socket { create_stream_socket_perms }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Init script handling 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-init_use_fds(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-init_use_script_ptys(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-domain_use_interactive_fds(dirsrv_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-######################################## 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# dirsrv-snmp local policy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Some common macros 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_read_etc_files(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-miscfiles_read_localization(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-libs_use_ld_so(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-libs_use_shared_libs(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-dev_read_rand(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-dev_read_urand(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_read_usr_files(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fs_getattr_tmpfs(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fs_search_tmpfs(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-allow dirsrv_snmp_t self:fifo_file { read write }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-sysnet_read_config(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-sysnet_dns_name_resolve(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Net-SNMP /var/lib files (includes agentx unix domain socket) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-snmp_dontaudit_read_snmp_var_lib_files(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-snmp_dontaudit_write_snmp_var_lib_files(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# NGK - there really should be a macro for this. (see bz 523771) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-allow dirsrv_snmp_t snmpd_var_lib_t:file append; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# NGK - use snmp_stream_connect(dirsrv_snmp_t) when it is made 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# available on all platforms we build on (see bz 478629 and bz 523548) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-stream_connect_pattern(dirsrv_snmp_t, snmpd_var_lib_t, snmpd_var_lib_t, snmpd_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Net-SNMP agentx tcp socket 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-corenet_tcp_connect_agentx_port(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Net-SNMP persistent data file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_manage_var_files(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# stats file semaphore 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-rw_files_pattern(dirsrv_snmp_t, dirsrv_tmpfs_t, dirsrv_tmpfs_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# stats file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-read_files_pattern(dirsrv_snmp_t, dirsrv_var_run_t, dirsrv_var_run_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# process stuff 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-allow dirsrv_snmp_t self:capability { dac_override dac_read_search }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# config file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-read_files_pattern(dirsrv_snmp_t, dirsrv_config_t, dirsrv_config_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# pid file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_files_pattern(dirsrv_snmp_t, dirsrv_snmp_var_run_t, dirsrv_snmp_var_run_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-files_pid_filetrans(dirsrv_snmp_t, dirsrv_snmp_var_run_t, { file sock_file }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-search_dirs_pattern(dirsrv_snmp_t, dirsrv_var_run_t, dirsrv_var_run_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# log file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-manage_files_pattern(dirsrv_snmp_t, dirsrv_var_log_t, dirsrv_snmp_var_log_t); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-filetrans_pattern(dirsrv_snmp_t, dirsrv_var_log_t, dirsrv_snmp_var_log_t, file) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Init script handling 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-init_use_fds(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-init_use_script_ptys(dirsrv_snmp_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-domain_use_interactive_fds(dirsrv_snmp_t) 
			 |