convert relevant conditionals into tunable_policy
This commit is contained in:
parent
65a27ee05d
commit
3eed10909e
@ -30,6 +30,11 @@ gen_tunable(cron_can_relabel,false)
|
||||
## </tunable>
|
||||
gen_tunable(fcron_crond,false)
|
||||
|
||||
## <tunable name="allow_gpg_execstack" dftval="false">
|
||||
## Allow gpg executable stack
|
||||
## </tunable>
|
||||
gen_tunable(allow_gpg_execstack,false)
|
||||
|
||||
## <tunable name="read_default_t" dftval="false">
|
||||
## Allow reading of default_t files.
|
||||
## </tunable>
|
||||
@ -72,6 +77,11 @@ gen_tunable(user_dmesg,false)
|
||||
## </tunable>
|
||||
gen_tunable(user_net_control,false)
|
||||
|
||||
## <tunable name="user_ping" dftval="false">
|
||||
## Control users use of ping and traceroute
|
||||
## </tunable>
|
||||
gen_tunable(user_ping,false)
|
||||
|
||||
## <tunable name="user_rw_noexattrfile" dftval="false">
|
||||
## Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)
|
||||
## </tunable>
|
||||
|
@ -73,21 +73,7 @@ allow consoletype_t nfs_t:file write;
|
||||
allow consoletype_t crond_t:fifo_file r_file_perms;
|
||||
allow consoletype_t system_crond_t:fd use;
|
||||
|
||||
optional_policy(`ypbind.te', `
|
||||
if (allow_ypbind) {
|
||||
can_network(consoletype_t)
|
||||
r_dir_file(consoletype_t,var_yp_t)
|
||||
corenet_tcp_bind_generic_port(consoletype_t)
|
||||
corenet_udp_bind_generic_port(consoletype_t)
|
||||
corenet_tcp_bind_reserved_port(consoletype_t)
|
||||
corenet_udp_bind_reserved_port(consoletype_t)
|
||||
corenet_dontaudit_tcp_bind_all_reserved_ports(consoletype_t)
|
||||
corenet_dontaudit_udp_bind_all_reserved_ports(consoletype_t)
|
||||
dontaudit consoletype_t self:capability net_bind_service;
|
||||
} else {
|
||||
dontaudit consoletype_t var_yp_t:dir search;
|
||||
}
|
||||
') dnl end ypbind optional_policy
|
||||
can_ypbind(consoletype_t)
|
||||
|
||||
optional_policy(`automount.te', `
|
||||
allow consoletype_t autofs_t:dir { search getattr };
|
||||
|
@ -24,11 +24,6 @@ type traceroute_exec_t;
|
||||
init_system_domain(traceroute_t,traceroute_exec_t)
|
||||
role system_r types traceroute_t;
|
||||
|
||||
#
|
||||
# Control users use of ping and traceroute
|
||||
#
|
||||
bool user_ping false;
|
||||
|
||||
########################################
|
||||
#
|
||||
# Netutils local policy
|
||||
@ -129,10 +124,10 @@ sysnet_read_config(ping_t)
|
||||
|
||||
logging_send_syslog_msg(ping_t)
|
||||
|
||||
if (user_ping) {
|
||||
tunable_policy(`user_ping',`
|
||||
term_use_all_user_ttys(ping_t)
|
||||
term_use_all_user_ptys(ping_t)
|
||||
}
|
||||
')
|
||||
|
||||
ifdef(`TODO',`
|
||||
can_ypbind(ping_t)
|
||||
@ -143,10 +138,11 @@ allow ping_t admin_tty_type:chr_file rw_file_perms;
|
||||
ifdef(`gnome-pty-helper.te', `allow ping_t sysadm_gph_t:fd use;')
|
||||
|
||||
in_user_role(ping_t)
|
||||
if (user_ping) {
|
||||
tunable_policy(`user_ping',`
|
||||
domain_auto_trans(unpriv_userdomain, ping_exec_t, ping_t)
|
||||
ifdef(`gnome-pty-helper.te', `allow ping_t gphdomain:fd use;')
|
||||
}
|
||||
')
|
||||
|
||||
') dnl end TODO
|
||||
|
||||
########################################
|
||||
@ -192,10 +188,10 @@ dev_read_rand(traceroute_t)
|
||||
dev_read_urand(traceroute_t)
|
||||
files_read_usr_files(traceroute_t)
|
||||
|
||||
if (user_ping) {
|
||||
tunable_policy(`user_ping',`
|
||||
term_use_all_user_ttys(traceroute_t)
|
||||
term_use_all_user_ptys(traceroute_t)
|
||||
}
|
||||
')
|
||||
|
||||
ifdef(`TODO',`
|
||||
role sysadm_r types traceroute_t;
|
||||
@ -210,9 +206,9 @@ allow traceroute_t admin_tty_type:chr_file rw_file_perms;
|
||||
ifdef(`gnome-pty-helper.te', `allow traceroute_t sysadm_gph_t:fd use;')
|
||||
|
||||
in_user_role(traceroute_t)
|
||||
if (user_ping) {
|
||||
tunable_policy(`user_ping',`
|
||||
domain_auto_trans(unpriv_userdomain, traceroute_exec_t, traceroute_t)
|
||||
}
|
||||
')
|
||||
|
||||
#rules needed for nmap
|
||||
dontaudit traceroute_t userdomain:dir search;
|
||||
|
@ -94,14 +94,14 @@ define(`gpg_per_userdomain_template',`
|
||||
sysnet_read_config($1_gpg_t)
|
||||
|
||||
# Legacy
|
||||
if (allow_gpg_execstack) {
|
||||
tunable_policy(`allow_gpg_execstack',`
|
||||
allow $1_gpg_t self:process execmem;
|
||||
libs_legacy_use_shared_libs($1_gpg_t)
|
||||
libs_legacy_use_ld_so($1_gpg_t)
|
||||
miscfiles_legacy_read_localization($1_gpg_t)
|
||||
# Not quite sure why this is needed...
|
||||
allow $1_gpg_t gpg_exec_t:file execmod;
|
||||
}
|
||||
')
|
||||
|
||||
ifdef(`TODO',`
|
||||
|
||||
@ -134,12 +134,12 @@ define(`gpg_per_userdomain_template',`
|
||||
# allow the usual access to /tmp
|
||||
file_type_auto_trans($1_gpg_t, tmp_t, $1_tmp_t)
|
||||
|
||||
if (use_nfs_home_dirs) {
|
||||
tunable_policy(`use_nfs_home_dirs',`
|
||||
create_dir_file($1_gpg_t, nfs_t)
|
||||
}
|
||||
if (use_samba_home_dirs) {
|
||||
')
|
||||
tunable_policy(`use_samba_home_dirs',`
|
||||
create_dir_file($1_gpg_t, cifs_t)
|
||||
}
|
||||
')
|
||||
|
||||
rw_dir_create_file($1_gpg_t, $1_file_type)
|
||||
|
||||
@ -199,12 +199,12 @@ define(`gpg_per_userdomain_template',`
|
||||
|
||||
ifdef(`TODO',`
|
||||
|
||||
if (use_nfs_home_dirs) {
|
||||
tunable_policy(`use_nfs_home_dirs',`
|
||||
dontaudit $1_gpg_helper_t nfs_t:file { read write };
|
||||
}
|
||||
if (use_samba_home_dirs) {
|
||||
')
|
||||
tunable_policy(`use_samba_home_dirs',`
|
||||
dontaudit $1_gpg_helper_t cifs_t:file { read write };
|
||||
}
|
||||
')
|
||||
|
||||
# communicate with the user
|
||||
allow $1_gpg_helper_t $1_t:fd use;
|
||||
@ -261,12 +261,12 @@ define(`gpg_per_userdomain_template',`
|
||||
# read and write ~/.gnupg (gpg-agent stores secret keys in ~/.gnupg/private-keys-v1.d )
|
||||
allow $1_gpg_agent_t { home_root_t $1_home_dir_t }:dir search;
|
||||
create_dir_file($1_gpg_agent_t, $1_gpg_secret_t)
|
||||
if (use_nfs_home_dirs) {
|
||||
tunable_policy(`use_nfs_home_dirs',`
|
||||
create_dir_file($1_gpg_agent_t, nfs_t)
|
||||
}
|
||||
if (use_samba_home_dirs) {
|
||||
')
|
||||
tunable_policy(`use_samba_home_dirs',`
|
||||
create_dir_file($1_gpg_agent_t, cifs_t)
|
||||
}
|
||||
')
|
||||
|
||||
# gpg connect
|
||||
allow $1_gpg_t $1_gpg_agent_tmp_t:dir search;
|
||||
@ -327,19 +327,19 @@ define(`gpg_per_userdomain_template',`
|
||||
dontaudit $1_gpg_pinentry_t $1_home_t:dir { read write };
|
||||
dontaudit $1_gpg_pinentry_t $1_home_t:file write;
|
||||
|
||||
if (use_nfs_home_dirs) {
|
||||
tunable_policy(`use_nfs_home_dirs',`
|
||||
allow $1_gpg_pinentry_t nfs_t:dir { getattr search };
|
||||
allow $1_gpg_pinentry_t nfs_t:file r_file_perms;
|
||||
dontaudit $1_gpg_pinentry_t nfs_t:dir { read write };
|
||||
dontaudit $1_gpg_pinentry_t nfs_t:file write;
|
||||
}
|
||||
')
|
||||
|
||||
if (use_samba_home_dirs) {
|
||||
tunable_policy(`use_samba_home_dirs',`
|
||||
allow $1_gpg_pinentry_t cifs_t:dir { getattr search };
|
||||
allow $1_gpg_pinentry_t cifs_t:file r_file_perms;
|
||||
dontaudit $1_gpg_pinentry_t cifs_t:dir { read write };
|
||||
dontaudit $1_gpg_pinentry_t cifs_t:file write;
|
||||
}
|
||||
')
|
||||
|
||||
dontaudit $1_gpg_pinentry_t { sysctl_t sysctl_kernel_t }:dir { getattr search };
|
||||
') dnl end TODO
|
||||
|
@ -6,9 +6,6 @@ policy_module(gpg, 1.0)
|
||||
# Declarations
|
||||
#
|
||||
|
||||
# Allow gpg exec stack
|
||||
bool allow_gpg_execstack false;
|
||||
|
||||
# Type for gpg or pgp executables.
|
||||
type gpg_exec_t;
|
||||
type gpg_helper_exec_t;
|
||||
|
@ -116,9 +116,9 @@ define(`mta_per_userdomain_template',`
|
||||
# Create dead.letter in user home directories.
|
||||
file_type_auto_trans($1_mail_t, $1_home_dir_t, $1_home_t, file)
|
||||
|
||||
if (use_samba_home_dirs) {
|
||||
tunable_policy(`use_samba_home_dirs',`
|
||||
rw_dir_create_file($1_mail_t, cifs_t)
|
||||
}
|
||||
')
|
||||
|
||||
# if you do not want to allow dead.letter then use the following instead
|
||||
#allow $1_mail_t { $1_home_dir_t $1_home_t }:dir r_dir_perms;
|
||||
|
@ -92,10 +92,10 @@ allow remote_login_t bin_t:dir r_dir_perms;
|
||||
allow remote_login_t bin_t:notdevfile_class_set r_file_perms;
|
||||
allow remote_login_t sbin_t:dir r_dir_perms;
|
||||
allow remote_login_t sbin_t:notdevfile_class_set r_file_perms;
|
||||
if (read_default_t) {
|
||||
tunable_policy(`read_default_t',`
|
||||
allow remote_login_t default_t:dir r_dir_perms;
|
||||
allow remote_login_t default_t:notdevfile_class_set r_file_perms;
|
||||
}
|
||||
')
|
||||
|
||||
# Read directories and files with the readable_t type.
|
||||
# This type is a general type for "world"-readable files.
|
||||
@ -116,13 +116,13 @@ dontaudit remote_login_t sysfs_t:dir search;
|
||||
allow remote_login_t autofs_t:dir r_dir_perms;
|
||||
allow remote_login_t mnt_t:dir r_dir_perms;
|
||||
|
||||
if (use_nfs_home_dirs) {
|
||||
r_dir_file(remote_login_t, nfs_t)
|
||||
}
|
||||
tunable_policy(`use_nfs_home_dirs',`
|
||||
r_dir_file(remote_login_t, nfs_t)
|
||||
')
|
||||
|
||||
if (use_samba_home_dirs) {
|
||||
r_dir_file(remote_login_t, cifs_t)
|
||||
}
|
||||
tunable_policy(`use_samba_home_dirs',`
|
||||
r_dir_file(remote_login_t, cifs_t)
|
||||
')
|
||||
|
||||
# FIXME: what is this for?
|
||||
ifdef(`xdm.te', `
|
||||
|
@ -124,10 +124,11 @@ allow local_login_t bin_t:dir r_dir_perms;
|
||||
allow local_login_t bin_t:notdevfile_class_set r_file_perms;
|
||||
allow local_login_t sbin_t:dir r_dir_perms;
|
||||
allow local_login_t sbin_t:notdevfile_class_set r_file_perms;
|
||||
if (read_default_t) {
|
||||
|
||||
tunable_policy(`read_default_t',`
|
||||
allow local_login_t default_t:dir r_dir_perms;
|
||||
allow local_login_t default_t:notdevfile_class_set r_file_perms;
|
||||
}
|
||||
')
|
||||
|
||||
# Read directories and files with the readable_t type.
|
||||
# This type is a general type for "world"-readable files.
|
||||
@ -182,13 +183,14 @@ allow local_login_t sound_device_t:chr_file { getattr setattr };
|
||||
# Allow setting of attributes on power management devices.
|
||||
allow local_login_t power_device_t:chr_file { getattr setattr };
|
||||
|
||||
#if (use_nfs_home_dirs) {
|
||||
#r_dir_file(local_login_t, nfs_t)
|
||||
#}
|
||||
tunable_policy(`use_nfs_home_dirs',`
|
||||
r_dir_file(local_login_t, nfs_t)
|
||||
')
|
||||
|
||||
tunable_policy(`use_samba_home_dirs',`
|
||||
r_dir_file(local_login_t, cifs_t)
|
||||
')
|
||||
|
||||
#if (use_samba_home_dirs) {
|
||||
#r_dir_file(local_login_t, cifs_t)
|
||||
#}
|
||||
') dnl endif TODO
|
||||
|
||||
#################################
|
||||
|
@ -238,10 +238,10 @@ define(`base_user_domain',`
|
||||
# /initrd is left mounted, various programs try to look at it
|
||||
dontaudit $1_t ramfs_t:dir getattr;
|
||||
|
||||
if (read_default_t) {
|
||||
tunable_policy(`read_default_t',`
|
||||
allow $1_t default_t:dir r_dir_perms;
|
||||
allow $1_t default_t:notdevfile_class_set r_file_perms;
|
||||
}
|
||||
')
|
||||
|
||||
#
|
||||
# Running ifconfig as a user generates the following
|
||||
@ -254,10 +254,10 @@ define(`base_user_domain',`
|
||||
|
||||
can_ypbind($1_t)
|
||||
|
||||
if (allow_execmod) {
|
||||
tunable_policy(`allow_execmod',`
|
||||
# Allow text relocations on system shared libraries, e.g. libGL.
|
||||
allow $1_t texrel_shlib_t:file execmod;
|
||||
}
|
||||
')
|
||||
|
||||
allow $1_t fs_type:dir getattr;
|
||||
|
||||
@ -275,17 +275,19 @@ define(`base_user_domain',`
|
||||
allow $1_t autofs_t:dir { getattr search };
|
||||
|
||||
can_exec($1_t, { removable_t noexattrfile } )
|
||||
if (user_rw_noexattrfile) {
|
||||
|
||||
tunable_policy(`user_rw_noexattrfile',`
|
||||
create_dir_file($1_t, noexattrfile)
|
||||
create_dir_file($1_t, removable_t)
|
||||
# Write floppies
|
||||
allow $1_t removable_device_t:blk_file rw_file_perms;
|
||||
allow $1_t usbtty_device_t:chr_file write;
|
||||
} else {
|
||||
',`
|
||||
r_dir_file($1_t, noexattrfile)
|
||||
r_dir_file($1_t, removable_t)
|
||||
allow $1_t removable_device_t:blk_file r_file_perms;
|
||||
}
|
||||
')
|
||||
|
||||
allow $1_t usbtty_device_t:chr_file read;
|
||||
|
||||
can_exec($1_t, noexattrfile)
|
||||
@ -526,15 +528,15 @@ define(`user_domain_template', `
|
||||
')
|
||||
|
||||
ifdef(`ftpd.te', `
|
||||
if (ftp_home_dir) {
|
||||
tunable_policy(`ftp_home_dir',`
|
||||
file_type_auto_trans(ftpd_t, $1_home_dir_t, $1_home_t)
|
||||
}
|
||||
')
|
||||
')
|
||||
|
||||
if (read_default_t) {
|
||||
tunable_policy(`read_default_t',`
|
||||
allow $1 default_t:dir r_dir_perms;
|
||||
allow $1 default_t:notdevfile_class_set r_file_perms;
|
||||
}
|
||||
')
|
||||
|
||||
can_exec($1_t, usr_t)
|
||||
|
||||
@ -557,11 +559,11 @@ define(`user_domain_template', `
|
||||
allow $1_t var_lib_t:file { getattr read };
|
||||
|
||||
# Allow users to rw usb devices
|
||||
if (user_rw_usb) {
|
||||
tunable_policy(`user_rw_usb',`
|
||||
rw_dir_create_file($1_t,usbdevfs_t)
|
||||
} else {
|
||||
',`
|
||||
r_dir_file($1_t,usbdevfs_t)
|
||||
}
|
||||
')
|
||||
|
||||
# Do not audit write denials to /etc/ld.so.cache.
|
||||
dontaudit $1_t ld_so_cache_t:file write;
|
||||
@ -765,10 +767,10 @@ define(`admin_domain_template',`
|
||||
|
||||
ifdef(`xdm.te', `
|
||||
ifdef(`xauth.te', `
|
||||
if (xdm_sysadm_login) {
|
||||
tunable_policy(`xdm_sysadm_login',`
|
||||
allow xdm_t $1_home_t:lnk_file read;
|
||||
allow xdm_t $1_home_t:dir search;
|
||||
}
|
||||
')
|
||||
allow $1_t xdm_t:fifo_file rw_file_perms;
|
||||
')
|
||||
')
|
||||
|
Loading…
Reference in New Issue
Block a user