Dominick Grift d37b7aa
policy_module(git, 1.2.3)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
# Declarations
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
## <desc>
Chris PeBenito 9401ae1
##	

Chris PeBenito 9401ae1
##	Determine whether Git CGI
Chris PeBenito 9401ae1
##	can search home directories.
Chris PeBenito 9401ae1
##	

Chris PeBenito 9401ae1
## </desc>
Chris PeBenito 9401ae1
gen_tunable(git_cgi_enable_homedirs, false)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
## <desc>
Chris PeBenito 9401ae1
##	

Chris PeBenito 9401ae1
##	Determine whether Git CGI
Chris PeBenito 9401ae1
##	can access cifs file systems.
Chris PeBenito 9401ae1
##	

Chris PeBenito 9401ae1
## </desc>
Chris PeBenito 9401ae1
gen_tunable(git_cgi_use_cifs, false)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
## <desc>
Chris PeBenito 9401ae1
##	

Chris PeBenito 9401ae1
##	Determine whether Git CGI
Chris PeBenito 9401ae1
##	can access nfs file systems.
Chris PeBenito 9401ae1
##	

Chris PeBenito 9401ae1
## </desc>
Chris PeBenito 9401ae1
gen_tunable(git_cgi_use_nfs, false)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
## <desc>
Chris PeBenito 9401ae1
##	

28b05e4
##	Determine whether Git session daemon
28b05e4
##	can bind TCP sockets to all
28b05e4
##	unreserved ports.
Dominick Grift 396297c
##	

Dominick Grift 396297c
## </desc>
Dominick Grift 396297c
gen_tunable(git_session_bind_all_unreserved_ports, false)
Dominick Grift 396297c
Dominick Grift 396297c
## <desc>
Dominick Grift 396297c
##	

Chris PeBenito 9401ae1
##	Determine whether calling user domains
Chris PeBenito 9401ae1
##	can execute Git daemon in the
Chris PeBenito 9401ae1
##	git_session_t domain.
2e8a67f
##	

2e8a67f
## </desc>
521831c
gen_tunable(git_session_users, false)
2e8a67f
2e8a67f
## <desc>
2e8a67f
##	

Chris PeBenito 9401ae1
##	Determine whether Git system daemon
Chris PeBenito 9401ae1
##	can search home directories.
Chris PeBenito 9401ae1
##	

Chris PeBenito 9401ae1
## </desc>
Chris PeBenito 9401ae1
gen_tunable(git_system_enable_homedirs, false)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
## <desc>
Chris PeBenito 9401ae1
##	

Chris PeBenito 9401ae1
##	Determine whether Git system daemon
Chris PeBenito 9401ae1
##	can access cifs file systems.
Chris PeBenito 9401ae1
##	

Chris PeBenito 9401ae1
## </desc>
Chris PeBenito 9401ae1
gen_tunable(git_system_use_cifs, false)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
## <desc>
Chris PeBenito 9401ae1
##	

Chris PeBenito 9401ae1
##	Determine whether Git system daemon
Chris PeBenito 9401ae1
##	can access nfs file systems.
Chris PeBenito 9401ae1
##	

Chris PeBenito 9401ae1
## </desc>
Chris PeBenito 9401ae1
gen_tunable(git_system_use_nfs, false)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
attribute git_daemon;
Dominick Grift 396297c
attribute_role git_session_roles;
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
apache_content_template(git)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
type git_system_t, git_daemon;
Chris PeBenito 9401ae1
type gitd_exec_t;
Chris PeBenito 9401ae1
inetd_service_domain(git_system_t, gitd_exec_t)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
type git_session_t, git_daemon;
Chris PeBenito 66b26ac
userdom_user_application_domain(git_session_t, gitd_exec_t)
Dominick Grift 396297c
role git_session_roles types git_session_t;
Chris PeBenito 9401ae1
521831c
type git_sys_content_t;
Chris PeBenito 9401ae1
files_type(git_sys_content_t)
Chris PeBenito 9401ae1
521831c
type git_user_content_t;
Chris PeBenito 9401ae1
userdom_user_home_content(git_user_content_t)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
#
Dominick Grift 396297c
# Session policy
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
allow git_session_t self:tcp_socket { accept listen };
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
list_dirs_pattern(git_session_t, git_user_content_t, git_user_content_t)
Chris PeBenito 9401ae1
read_files_pattern(git_session_t, git_user_content_t, git_user_content_t)
Chris PeBenito 9401ae1
userdom_search_user_home_dirs(git_session_t)
Chris PeBenito 9401ae1
1f86dac
kernel_read_system_state(git_session_t)
1f86dac
Chris PeBenito 9401ae1
corenet_all_recvfrom_netlabel(git_session_t)
521831c
corenet_all_recvfrom_unlabeled(git_session_t)
Chris PeBenito 9401ae1
corenet_tcp_bind_generic_node(git_session_t)
Chris PeBenito 9401ae1
corenet_tcp_sendrecv_generic_if(git_session_t)
Chris PeBenito 9401ae1
corenet_tcp_sendrecv_generic_node(git_session_t)
Dominick Grift 396297c
Dominick Grift 396297c
corenet_sendrecv_git_server_packets(git_session_t)
Chris PeBenito 9401ae1
corenet_tcp_bind_git_port(git_session_t)
Chris PeBenito 9401ae1
corenet_tcp_sendrecv_git_port(git_session_t)
Chris PeBenito 9401ae1
ccdaf10
auth_use_nsswitch(git_session_t)
ccdaf10
Chris PeBenito 9401ae1
userdom_use_user_terminals(git_session_t)
Chris PeBenito 9401ae1
2e8a67f
tunable_policy(`git_session_bind_all_unreserved_ports',`
Dominick Grift 396297c
	corenet_sendrecv_all_server_packets(git_session_t)
Dominick Grift 396297c
	corenet_tcp_bind_all_unreserved_ports(git_session_t)
Dominick Grift 396297c
	corenet_tcp_sendrecv_all_ports(git_session_t)
Dominick Grift 396297c
')
Dominick Grift 396297c
1f86dac
logging_send_syslog_msg(git_session_t)
2e8a67f
Chris PeBenito 9401ae1
tunable_policy(`use_nfs_home_dirs',`
Dominick Grift 396297c
	fs_getattr_nfs(git_session_t)
Dominick Grift 396297c
	fs_list_nfs(git_session_t)
Chris PeBenito 9401ae1
	fs_read_nfs_files(git_session_t)
Chris PeBenito 9401ae1
',`
Chris PeBenito 9401ae1
	fs_dontaudit_read_nfs_files(git_session_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
tunable_policy(`use_samba_home_dirs',`
Dominick Grift 396297c
	fs_getattr_cifs(git_session_t)
Dominick Grift 396297c
	fs_list_cifs(git_session_t)
Chris PeBenito 9401ae1
	fs_read_cifs_files(git_session_t)
Chris PeBenito 9401ae1
',`
Chris PeBenito 9401ae1
	fs_dontaudit_read_cifs_files(git_session_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
########################################
1ec3d1a
#
Dominick Grift 396297c
# System policy
1ec3d1a
#
1ec3d1a
Chris PeBenito 9401ae1
list_dirs_pattern(git_system_t, git_sys_content_t, git_sys_content_t)
Chris PeBenito 9401ae1
read_files_pattern(git_system_t, git_sys_content_t, git_sys_content_t)
Dominick Grift 396297c
1f86dac
kernel_read_system_state(git_system_t)
1f86dac
1ec3d1a
files_search_var_lib(git_system_t)
1ec3d1a
ccdaf10
auth_use_nsswitch(git_system_t)
ccdaf10
Chris PeBenito 9401ae1
logging_send_syslog_msg(git_system_t)
1ec3d1a
1ec3d1a
tunable_policy(`git_system_enable_homedirs',`
1ec3d1a
	userdom_search_user_home_dirs(git_system_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
tunable_policy(`git_system_enable_homedirs && use_nfs_home_dirs',`
Dominick Grift 396297c
	fs_getattr_nfs(git_system_t)
Dominick Grift 396297c
	fs_list_nfs(git_system_t)
Chris PeBenito 9401ae1
	fs_read_nfs_files(git_system_t)
Chris PeBenito 9401ae1
',`
Chris PeBenito 9401ae1
	fs_dontaudit_read_nfs_files(git_system_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
tunable_policy(`git_system_enable_homedirs && use_samba_home_dirs',`
Dominick Grift 396297c
	fs_getattr_cifs(git_system_t)
Dominick Grift 396297c
	fs_list_cifs(git_system_t)
Chris PeBenito 9401ae1
	fs_read_cifs_files(git_system_t)
Chris PeBenito 9401ae1
',`
Chris PeBenito 9401ae1
	fs_dontaudit_read_cifs_files(git_system_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
tunable_policy(`git_system_use_cifs',`
Dominick Grift 396297c
	fs_getattr_cifs(git_system_t)
Dominick Grift 396297c
	fs_list_cifs(git_system_t)
Chris PeBenito 9401ae1
	fs_read_cifs_files(git_system_t)
Chris PeBenito 9401ae1
',`
Chris PeBenito 9401ae1
	fs_dontaudit_read_cifs_files(git_system_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
tunable_policy(`git_system_use_nfs',`
Dominick Grift 396297c
	fs_getattr_nfs(git_system_t)
Dominick Grift 396297c
	fs_list_nfs(git_system_t)
Chris PeBenito 9401ae1
	fs_read_nfs_files(git_system_t)
Chris PeBenito 9401ae1
',`
Chris PeBenito 9401ae1
	fs_dontaudit_read_nfs_files(git_system_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
########################################
1ec3d1a
#
Dominick Grift 396297c
# CGI policy
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
521831c
list_dirs_pattern(httpd_git_script_t, { git_sys_content_t git_user_content_t }, { git_sys_content_t git_user_content_t })
521831c
read_files_pattern(httpd_git_script_t, { git_sys_content_t git_user_content_t }, { git_sys_content_t git_user_content_t })
Chris PeBenito 9401ae1
files_search_var_lib(httpd_git_script_t)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
files_dontaudit_getattr_tmp_dirs(httpd_git_script_t)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
auth_use_nsswitch(httpd_git_script_t)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
tunable_policy(`git_cgi_enable_homedirs',`
Chris PeBenito 9401ae1
	userdom_search_user_home_dirs(httpd_git_script_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
tunable_policy(`git_cgi_enable_homedirs && use_nfs_home_dirs',`
Dominick Grift 396297c
	fs_getattr_nfs(httpd_git_script_t)
Dominick Grift 396297c
	fs_list_nfs(httpd_git_script_t)
Chris PeBenito 9401ae1
	fs_read_nfs_files(httpd_git_script_t)
Chris PeBenito 9401ae1
',`
Chris PeBenito 9401ae1
	fs_dontaudit_read_nfs_files(httpd_git_script_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
tunable_policy(`git_cgi_enable_homedirs && use_samba_home_dirs',`
Dominick Grift 396297c
	fs_getattr_cifs(httpd_git_script_t)
Dominick Grift 396297c
	fs_list_cifs(httpd_git_script_t)
Chris PeBenito 9401ae1
	fs_read_cifs_files(httpd_git_script_t)
Chris PeBenito 9401ae1
',`
Chris PeBenito 9401ae1
	fs_dontaudit_read_cifs_files(httpd_git_script_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
tunable_policy(`git_cgi_use_cifs',`
Dominick Grift 396297c
	fs_getattr_cifs(httpd_git_script_t)
Dominick Grift 396297c
	fs_list_cifs(httpd_git_script_t)
Chris PeBenito 9401ae1
	fs_read_cifs_files(httpd_git_script_t)
Chris PeBenito 9401ae1
',`
Chris PeBenito 9401ae1
	fs_dontaudit_read_cifs_files(httpd_git_script_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
tunable_policy(`git_cgi_use_nfs',`
Dominick Grift 396297c
	fs_getattr_nfs(httpd_git_script_t)
Dominick Grift 396297c
	fs_list_nfs(httpd_git_script_t)
Chris PeBenito 9401ae1
	fs_read_nfs_files(httpd_git_script_t)
Chris PeBenito 9401ae1
',`
Chris PeBenito 9401ae1
	fs_dontaudit_read_nfs_files(httpd_git_script_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
########################################
1ec3d1a
#
Chris PeBenito 9401ae1
# Git global policy
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
allow git_daemon self:fifo_file rw_fifo_file_perms;
Chris PeBenito 9401ae1
1f86dac
#kernel_read_system_state(git_daemon)
521831c
Chris PeBenito 9401ae1
corecmd_exec_bin(git_daemon)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
fs_search_auto_mountpoints(git_daemon)
Chris PeBenito 9401ae1