Dominick Grift 7e6a262
policy_module(polipo, 1.0.4)
Dominick Grift 8b64090
Dominick Grift 8b64090
########################################
Dominick Grift 8b64090
#
Dominick Grift 8b64090
# Declarations
Dominick Grift 8b64090
#
Dominick Grift 8b64090
Dominick Grift 8b64090
## <desc>
Dominick Grift 8b64090
##	

Dominick Grift 8b64090
##	Determine whether Polipo system
Dominick Grift 8b64090
##	daemon can access CIFS file systems.
Dominick Grift 8b64090
##	

Dominick Grift 8b64090
## </desc>
Dominick Grift 8b64090
gen_tunable(polipo_system_use_cifs, false)
Dominick Grift 8b64090
Dominick Grift 8b64090
## <desc>
Dominick Grift 8b64090
##	

Dominick Grift 8b64090
##	Determine whether Polipo system
Dominick Grift 8b64090
##	daemon can access NFS file systems.
Dominick Grift 8b64090
##	

Dominick Grift 8b64090
## </desc>
Dominick Grift 8b64090
gen_tunable(polipo_system_use_nfs, false)
Dominick Grift 8b64090
Dominick Grift 8b64090
## <desc>
Dominick Grift 8b64090
##	

Dominick Grift 8b64090
##	Determine whether calling user domains
Dominick Grift 8b64090
##	can execute Polipo daemon in the
Dominick Grift 8b64090
##	polipo_session_t domain.
Dominick Grift 8b64090
##	

Dominick Grift 8b64090
## </desc>
Dominick Grift 8b64090
gen_tunable(polipo_session_users, false)
Dominick Grift 8b64090
Dominick Grift 8b64090
## <desc>
Dominick Grift 8b64090
##	

Dominick Grift 8b64090
##	Determine whether Polipo session daemon
Dominick Grift 8b64090
##	can send syslog messages.
Dominick Grift 8b64090
##	

Dominick Grift 8b64090
## </desc>
Dominick Grift 8b64090
gen_tunable(polipo_session_send_syslog_msg, false)
Dominick Grift 8b64090
Dominick Grift 8b64090
attribute polipo_daemon;
Dominick Grift 8b64090
Dominick Grift 8b64090
type polipo_system_t, polipo_daemon;
Dominick Grift 8b64090
type polipo_exec_t;
Dominick Grift 8b64090
init_daemon_domain(polipo_system_t, polipo_exec_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
type polipo_initrc_exec_t;
Dominick Grift 8b64090
init_script_file(polipo_initrc_exec_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
type polipo_conf_t;
Dominick Grift 8b64090
files_config_file(polipo_conf_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
type polipo_cache_t;
Dominick Grift 8b64090
files_type(polipo_cache_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
type polipo_log_t;
Dominick Grift 8b64090
logging_log_file(polipo_log_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
type polipo_var_run_t;
Dominick Grift 8b64090
files_pid_file(polipo_var_run_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
type polipo_session_t, polipo_daemon;
Dominick Grift 8b64090
userdom_user_application_domain(polipo_session_t, polipo_exec_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
type polipo_cache_home_t;
Dominick Grift 8b64090
userdom_user_home_content(polipo_cache_home_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
type polipo_config_home_t;
Dominick Grift 8b64090
userdom_user_home_content(polipo_config_home_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
########################################
Dominick Grift 8b64090
#
Dominick Grift 09c0cae
# Session local policy
Dominick Grift 8b64090
#
Dominick Grift 8b64090
Dominick Grift 8b64090
allow polipo_session_t polipo_config_home_t:file read_file_perms;
Dominick Grift 8b64090
Dominick Grift befe661
manage_dirs_pattern(polipo_session_t, polipo_cache_home_t, polipo_cache_home_t)
Dominick Grift 8b64090
manage_files_pattern(polipo_session_t, polipo_cache_home_t, polipo_cache_home_t)
Dominick Grift 8b64090
userdom_user_home_dir_filetrans(polipo_session_t, polipo_cache_home_t, dir, ".polipo-cache")
Dominick Grift 8b64090
Dominick Grift 8b64090
auth_use_nsswitch(polipo_session_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
userdom_use_user_terminals(polipo_session_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
tunable_policy(`polipo_session_send_syslog_msg',`
Dominick Grift 8b64090
	logging_send_syslog_msg(polipo_session_t)
Dominick Grift 8b64090
')
Dominick Grift 8b64090
Dominick Grift 8b64090
tunable_policy(`use_nfs_home_dirs',`
Dominick Grift 8b64090
	fs_read_nfs_files(polipo_session_t)
Dominick Grift 8b64090
',`
Dominick Grift 8b64090
	fs_dontaudit_read_nfs_files(polipo_session_t)
Dominick Grift 8b64090
')
Dominick Grift 8b64090
Dominick Grift 8b64090
tunable_policy(`use_samba_home_dirs',`
Dominick Grift 8b64090
	fs_read_cifs_files(polipo_session_t)
Dominick Grift 8b64090
',`
Dominick Grift 8b64090
	fs_dontaudit_read_cifs_files(polipo_session_t)
Dominick Grift 8b64090
')
Dominick Grift 8b64090
Dominick Grift 8b64090
########################################
Dominick Grift 8b64090
#
Dominick Grift 09c0cae
# System local policy
Dominick Grift 8b64090
#
Dominick Grift 8b64090
Dominick Grift 8b64090
read_files_pattern(polipo_system_t, polipo_conf_t, polipo_conf_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
manage_files_pattern(polipo_system_t, polipo_cache_t, polipo_cache_t)
Dominick Grift 8b64090
manage_dirs_pattern(polipo_system_t, polipo_cache_t, polipo_cache_t)
Dominick Grift 8b64090
files_var_filetrans(polipo_system_t, polipo_cache_t, dir)
Dominick Grift 8b64090
Dominick Grift 8b64090
append_files_pattern(polipo_system_t, polipo_log_t, polipo_log_t)
Dominick Grift 8b64090
create_files_pattern(polipo_system_t, polipo_log_t, polipo_log_t)
Dominick Grift 8b64090
setattr_files_pattern(polipo_system_t, polipo_log_t, polipo_log_t)
Dominick Grift 8b64090
logging_log_filetrans(polipo_system_t, polipo_log_t, file)
Dominick Grift 8b64090
Dominick Grift 8b64090
manage_files_pattern(polipo_system_t, polipo_var_run_t, polipo_var_run_t)
Dominick Grift 8b64090
files_pid_filetrans(polipo_system_t, polipo_var_run_t, file)
Dominick Grift 8b64090
Dominick Grift 8b64090
auth_use_nsswitch(polipo_system_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
logging_send_syslog_msg(polipo_system_t)
Dominick Grift 8b64090
Dominick Grift 8b64090
optional_policy(`
Dominick Grift 8b64090
	cron_system_entry(polipo_system_t, polipo_exec_t)
Dominick Grift 8b64090
')
Dominick Grift 8b64090
Dominick Grift 8b64090
tunable_policy(`polipo_system_use_cifs',`
Dominick Grift 8b64090
	fs_manage_cifs_files(polipo_system_t)
Dominick Grift 8b64090
',`
Dominick Grift 8b64090
	fs_dontaudit_read_cifs_files(polipo_system_t)
Dominick Grift 8b64090
')
Dominick Grift 8b64090
Dominick Grift 8b64090
tunable_policy(`polipo_system_use_nfs',`
Dominick Grift 8b64090
	fs_manage_nfs_files(polipo_system_t)
Dominick Grift 8b64090
',`
Dominick Grift 8b64090
	fs_dontaudit_read_nfs_files(polipo_system_t)
Dominick Grift 8b64090
')
Dominick Grift 8b64090
Dominick Grift 8b64090
########################################
Dominick Grift 8b64090
#
Dominick Grift 8b64090
# Polipo global local policy
Dominick Grift 8b64090
#
Dominick Grift 8b64090
Dominick Grift 8b64090
allow polipo_daemon self:fifo_file rw_fifo_file_perms;
Dominick Grift 8b64090
allow polipo_daemon self:tcp_socket { listen accept };
Dominick Grift 8b64090
Dominick Grift 8b64090
corenet_all_recvfrom_unlabeled(polipo_daemon)
Dominick Grift 8b64090
corenet_all_recvfrom_netlabel(polipo_daemon)
Dominick Grift 8b64090
corenet_tcp_sendrecv_generic_if(polipo_daemon)
Dominick Grift 8b64090
corenet_tcp_sendrecv_generic_node(polipo_daemon)
Dominick Grift 8b64090
corenet_tcp_bind_generic_node(polipo_daemon)
Dominick Grift 8b64090
Dominick Grift 8b64090
corenet_sendrecv_http_client_packets(polipo_daemon)
Dominick Grift 8b64090
corenet_tcp_sendrecv_http_port(polipo_daemon)
Dominick Grift 8b64090
corenet_tcp_connect_http_port(polipo_daemon)
Dominick Grift 8b64090
Dominick Grift 8b64090
corenet_sendrecv_http_cache_server_packets(polipo_daemon)
Dominick Grift 8b64090
corenet_tcp_sendrecv_http_cache_port(polipo_daemon)
Dominick Grift 8b64090
corenet_tcp_bind_http_cache_port(polipo_daemon)
Dominick Grift 8b64090
Dominick Grift 8b64090
files_read_usr_files(polipo_daemon)
Dominick Grift 8b64090
Dominick Grift 8b64090
fs_search_auto_mountpoints(polipo_daemon)
Dominick Grift 8b64090
Dominick Grift 8b64090
miscfiles_read_localization(polipo_daemon)