|
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 |
|