## Trivial file transfer protocol daemon ######################################## ## ## Read tftp content ## ## ## ## Domain allowed access. ## ## # interface(`tftp_read_content',` gen_require(` type tftpdir_t; type tftpdir_rw_t; ') list_dirs_pattern($1, tftpdir_t, tftpdir_t) read_files_pattern($1, tftpdir_t, tftpdir_t) read_lnk_files_pattern($1, tftpdir_t, tftpdir_t) list_dirs_pattern($1, tftpdir_rw_t, tftpdir_rw_t) read_files_pattern($1, tftpdir_rw_t, tftpdir_rw_t) read_lnk_files_pattern($1, tftpdir_rw_t, tftpdir_rw_t) ') ######################################## ## ## Search tftp /var/lib directories. ## ## ## ## Domain allowed access. ## ## # interface(`tftp_search_rw_content',` gen_require(` type tftpdir_rw_t; ') search_dirs_pattern($1, tftpdir_rw_t, tftpdir_rw_t) files_search_var_lib($1) ') ######################################## ## ## Allow read tftp /var/lib files. ## ## ## ## Domain allowed access. ## ## # interface(`tftp_read_rw_content',` gen_require(` type tftpdir_rw_t; ') files_search_var_lib($1) read_files_pattern($1, tftpdir_rw_t, tftpdir_rw_t) ') ######################################## ## ## Allow write tftp /var/lib files. ## ## ## ## Domain allowed access. ## ## # interface(`tftp_write_rw_content',` gen_require(` type tftpdir_rw_t; ') files_search_var_lib($1) write_files_pattern($1, tftpdir_rw_t, tftpdir_rw_t) ') ######################################## ## ## Manage tftp /var/lib files. ## ## ## ## Domain allowed access. ## ## # interface(`tftp_manage_rw_content',` gen_require(` type tftpdir_rw_t; ') files_search_var_lib($1) manage_dirs_pattern($1, tftpdir_rw_t, tftpdir_rw_t) manage_files_pattern($1, tftpdir_rw_t, tftpdir_rw_t) ') ######################################## ## ## Manage tftp /var/lib files. ## ## ## ## Domain allowed access. ## ## # interface(`tftp_delete_content_dirs',` gen_require(` type tftpdir_rw_t; ') files_search_var_lib($1) delete_dirs_pattern($1, tftpdir_rw_t, tftpdir_rw_t) ') ######################################## ## ## Read tftp config files. ## ## ## ## Domain allowed access. ## ## # interface(`tftp_read_config',` gen_require(` type tftpd_etc_t; ') read_files_pattern($1, tftpd_etc_t, tftpd_etc_t) ') ######################################## ## ## Manage tftp config files. ## ## ## ## Domain allowed access. ## ## # interface(`tftp_manage_config',` gen_require(` type tftpd_etc_t; ') manage_files_pattern($1, tftpd_etc_t, tftpd_etc_t) files_etc_filetrans($1, tftpd_etc_t, file, "tftp") ') ######################################## ## ## Create objects in tftpdir directories ## with specified types. ## ## ## ## Domain allowed access. ## ## ## ## ## Private file type. ## ## ## ## ## Class of the object being created. ## ## # interface(`tftp_filetrans_tftpdir',` gen_require(` type tftpdir_rw_t; ') filetrans_pattern($1, tftpdir_rw_t, $2, $3) files_search_var_lib($1) ') ######################################## ## ## Transition to tftp named content ## ## ## ## Domain allowed access. ## ## # interface(`tftp_filetrans_named_content',` gen_require(` type tftpd_etc_t; ') files_etc_filetrans($1, tftpd_etc_t, file, "tftp") ') ######################################## ## ## All of the rules required to administrate ## an tftp environment ## ## ## ## Domain allowed access. ## ## ## # interface(`tftp_admin',` gen_require(` type tftpd_t, tftpdir_t, tftpdir_rw_t, tftpd_var_run_t; ') allow $1 tftpd_t:process signal_perms; ps_process_pattern($1, tftpd_t) tunable_policy(`deny_ptrace',`',` allow $1 tftpd_t:process ptrace; ') files_list_var_lib($1) admin_pattern($1, tftpdir_rw_t) admin_pattern($1, tftpdir_t) files_list_pids($1) admin_pattern($1, tftpd_var_run_t) tftp_manage_config($1) ')