diff --git a/Changelog b/Changelog index 155e0f08..a47fd0be 100644 --- a/Changelog +++ b/Changelog @@ -7,6 +7,8 @@ - Add file for enabling policy capabilities. - Patch to fix leaky interface/template call depth calculator from Vaclav Ovsik. +- Added modules: + kismet (Dan Walsh) * Wed Apr 02 2008 Chris PeBenito - 20080402 - Add core Security Enhanced X Windows support. diff --git a/policy/modules/admin/kismet.fc b/policy/modules/admin/kismet.fc new file mode 100644 index 00000000..d4daa527 --- /dev/null +++ b/policy/modules/admin/kismet.fc @@ -0,0 +1,4 @@ +/usr/bin/kismet -- gen_context(system_u:object_r:kismet_exec_t,s0) +/var/lib/kismet(/.*)? gen_context(system_u:object_r:kismet_var_lib_t,s0) +/var/log/kismet(/.*)? gen_context(system_u:object_r:kismet_log_t,s0) +/var/run/kismet_server.pid -- gen_context(system_u:object_r:kismet_var_run_t,s0) diff --git a/policy/modules/admin/kismet.if b/policy/modules/admin/kismet.if new file mode 100644 index 00000000..b8e94057 --- /dev/null +++ b/policy/modules/admin/kismet.if @@ -0,0 +1,252 @@ +## Kismet is an 802.11 layer2 wireless network detector, sniffer, and intrusion detection system. + +######################################## +## +## Execute a domain transition to run kismet. +## +## +## +## Domain allowed to transition. +## +## +# +interface(`kismet_domtrans',` + gen_require(` + type kismet_t, kismet_exec_t; + ') + + domtrans_pattern($1, kismet_exec_t, kismet_t) +') + +######################################## +## +## Execute kismet in the kismet domain, and +## allow the specified role the kismet domain. +## +## +## +## Domain allowed access +## +## +## +## +## The role to be allowed the kismet domain. +## +## +## +## +## The type of the role's terminal. +## +## +# +interface(`kismet_run',` + gen_require(` + type kismet_t; + ') + + kismet_domtrans($1) + role $2 types kismet_t; + allow kismet_t $3:chr_file rw_term_perms; +') + +######################################## +## +## Read kismet PID files. +## +## +## +## Domain allowed access. +## +## +# +interface(`kismet_read_pid_files',` + gen_require(` + type kismet_var_run_t; + ') + + allow $1 kismet_var_run_t:file read_file_perms; + files_search_pids($1) +') + +######################################## +## +## Manage kismet var_run files. +## +## +## +## Domain allowed access. +## +## +# +interface(`kismet_manage_pid_files',` + gen_require(` + type kismet_var_run_t; + ') + + allow $1 kismet_var_run_t:file manage_file_perms; + files_search_pids($1) +') + +######################################## +## +## Search kismet lib directories. +## +## +## +## Domain allowed access. +## +## +# +interface(`kismet_search_lib',` + gen_require(` + type kismet_var_lib_t; + ') + + allow $1 kismet_var_lib_t:dir search_dir_perms; + files_search_var_lib($1) +') + +######################################## +## +## Read kismet lib files. +## +## +## +## Domain allowed access. +## +## +# +interface(`kismet_read_lib_files',` + gen_require(` + type kismet_var_lib_t; + ') + + allow $1 kismet_var_lib_t:file read_file_perms; + allow $1 kismet_var_lib_t:dir list_dir_perms; + files_search_var_lib($1) +') + +######################################## +## +## Create, read, write, and delete +## kismet lib files. +## +## +## +## Domain allowed access. +## +## +# +interface(`kismet_manage_lib_files',` + gen_require(` + type kismet_var_lib_t; + ') + + manage_files_pattern($1, kismet_var_lib_t, kismet_var_lib_t) + files_search_var_lib($1) +') + +######################################## +## +## Manage kismet var_lib files. +## +## +## +## Domain allowed access. +## +## +# +interface(`kismet_manage_lib',` + gen_require(` + type kismet_var_lib_t; + ') + + manage_dirs_pattern($1, kismet_var_lib_t, kismet_var_lib_t) + manage_files_pattern($1, kismet_var_lib_t, kismet_var_lib_t) + manage_lnk_files_pattern($1, kismet_var_lib_t, kismet_var_lib_t) +') + +######################################## +## +## Allow the specified domain to read kismet's log files. +## +## +## +## Domain allowed access. +## +## +## +# +interface(`kismet_read_log',` + gen_require(` + type kismet_log_t; + ') + + logging_search_logs($1) + read_files_pattern($1, kismet_log_t, kismet_log_t) +') + +######################################## +## +## Allow the specified domain to append +## kismet log files. +## +## +## +## Domain allowed to transition. +## +## +# +interface(`kismet_append_log',` + gen_require(` + type var_log_t, kismet_log_t; + ') + + logging_search_logs($1) + append_files_pattern($1, kismet_log_t, kismet_log_t) +') + +######################################## +## +## Allow domain to manage kismet log files +## +## +## +## Domain to not audit. +## +## +# +interface(`kismet_manage_log',` + gen_require(` + type kismet_log_t; + ') + + manage_dirs_pattern($1, kismet_log_t, kismet_log_t) + manage_files_pattern($1, kismet_log_t, kismet_log_t) + manage_lnk_files_pattern($1, kismet_log_t, kismet_log_t) + logging_search_logs($1) +') + +######################################## +## +## All of the rules required to administrate an kismet environment +## +## +## +## Domain allowed access. +## +## +## +# +interface(`kismet_admin',` + gen_require(` + type kismet_t; + ') + + ps_process_pattern($1, kismet_t) + allow $1 kismet_t:process { ptrace signal_perms }; + + kismet_manage_pids($1) + kismet_manage_var_lib($1) + kismet_manage_log($1) +') diff --git a/policy/modules/admin/kismet.te b/policy/modules/admin/kismet.te new file mode 100644 index 00000000..980bba6c --- /dev/null +++ b/policy/modules/admin/kismet.te @@ -0,0 +1,51 @@ + +policy_module(kismet, 1.0.0) + +######################################## +# +# Declarations +# + +type kismet_t; +type kismet_exec_t; +application_domain(kismet_t, kismet_exec_t) +role system_r types kismet_t; + +type kismet_var_run_t; +files_pid_file(kismet_var_run_t) + +type kismet_var_lib_t; +files_type(kismet_var_lib_t) + +type kismet_log_t; +logging_log_file(kismet_log_t) + +######################################## +# +# kismet local policy +# + +allow kismet_t self:capability { net_admin setuid setgid }; + +manage_files_pattern(kismet_t, kismet_log_t, kismet_log_t) +allow kismet_t kismet_log_t:dir setattr; +logging_log_filetrans(kismet_t, kismet_log_t, { file dir }) + +allow kismet_t kismet_var_lib_t:file manage_file_perms; +allow kismet_t kismet_var_lib_t:dir manage_dir_perms; +files_var_lib_filetrans(kismet_t, kismet_var_lib_t, { file dir }) + +allow kismet_t kismet_var_run_t:file manage_file_perms; +allow kismet_t kismet_var_run_t:dir manage_dir_perms; +files_pid_filetrans(kismet_t, kismet_var_run_t, { file dir }) + +corecmd_exec_bin(kismet_t) + +auth_use_nsswitch(kismet_t) + +files_read_etc_files(kismet_t) + +libs_use_ld_so(kismet_t) +libs_use_shared_libs(kismet_t) + +miscfiles_read_localization(kismet_t)