diff --git a/policy/modules/services/inetd.te b/policy/modules/services/inetd.te index 88311e1..41e7839 100644 --- a/policy/modules/services/inetd.te +++ b/policy/modules/services/inetd.te @@ -1,5 +1,5 @@ -policy_module(inetd,1.4.1) +policy_module(inetd,1.4.2) ######################################## # @@ -80,16 +80,21 @@ corenet_tcp_bind_auth_port(inetd_t) corenet_udp_bind_comsat_port(inetd_t) corenet_tcp_bind_dbskkd_port(inetd_t) corenet_udp_bind_dbskkd_port(inetd_t) +corenet_tcp_bind_ftp_port(inetd_t) corenet_udp_bind_ftp_port(inetd_t) corenet_tcp_bind_inetd_child_port(inetd_t) +corenet_udp_bind_inetd_child_port(inetd_t) corenet_udp_bind_ktalkd_port(inetd_t) corenet_tcp_bind_printer_port(inetd_t) +corenet_udp_bind_rlogind_port(inetd_t) corenet_udp_bind_rsh_port(inetd_t) +corenet_tcp_bind_rsh_port(inetd_t) corenet_tcp_bind_rsync_port(inetd_t) corenet_udp_bind_rsync_port(inetd_t) #corenet_tcp_bind_stunnel_port(inetd_t) corenet_tcp_bind_swat_port(inetd_t) corenet_udp_bind_swat_port(inetd_t) +corenet_tcp_bind_telnetd_port(inetd_t) corenet_udp_bind_tftp_port(inetd_t) corenet_tcp_bind_ssh_port(inetd_t) @@ -134,6 +139,7 @@ miscfiles_read_localization(inetd_t) # xinetd needs MLS override privileges to work mls_fd_share_all_levels(inetd_t) mls_socket_read_to_clearance(inetd_t) +mls_socket_write_to_clearance(inetd_t) mls_process_set_level(inetd_t) sysnet_read_config(inetd_t) @@ -141,6 +147,11 @@ sysnet_read_config(inetd_t) userdom_dontaudit_use_unpriv_user_fds(inetd_t) userdom_dontaudit_search_sysadm_home_dirs(inetd_t) +ifdef(`enable_mls',` + corenet_tcp_recvfrom_netlabel(inetd_t) + corenet_udp_recvfrom_netlabel(inetd_t) +') + ifdef(`targeted_policy',` term_dontaudit_use_unallocated_ttys(inetd_t) term_dontaudit_use_generic_ptys(inetd_t) @@ -208,6 +219,8 @@ fs_getattr_xattr_fs(inetd_child_t) files_read_etc_files(inetd_child_t) +auth_use_nsswitch(inetd_child_t) + libs_use_ld_so(inetd_child_t) libs_use_shared_libs(inetd_child_t) @@ -225,10 +238,3 @@ optional_policy(` kerberos_use(inetd_child_t) ') -optional_policy(` - nis_use_ypbind(inetd_child_t) -') - -optional_policy(` - nscd_socket_use(inetd_child_t) -') diff --git a/policy/modules/services/postfix.fc b/policy/modules/services/postfix.fc index 9a58550..b85afac 100644 --- a/policy/modules/services/postfix.fc +++ b/policy/modules/services/postfix.fc @@ -14,6 +14,7 @@ ifdef(`distro_redhat', ` /usr/libexec/postfix/smtpd -- gen_context(system_u:object_r:postfix_smtpd_exec_t,s0) /usr/libexec/postfix/bounce -- gen_context(system_u:object_r:postfix_bounce_exec_t,s0) /usr/libexec/postfix/pipe -- gen_context(system_u:object_r:postfix_pipe_exec_t,s0) +/usr/libexec/postfix/virtual -- gen_context(system_u:object_r:postfix_virtual_exec_t,s0) ', ` /usr/lib/postfix/.* -- gen_context(system_u:object_r:postfix_exec_t,s0) /usr/lib/postfix/cleanup -- gen_context(system_u:object_r:postfix_cleanup_exec_t,s0) @@ -28,6 +29,7 @@ ifdef(`distro_redhat', ` /usr/lib/postfix/smtpd -- gen_context(system_u:object_r:postfix_smtpd_exec_t,s0) /usr/lib/postfix/bounce -- gen_context(system_u:object_r:postfix_bounce_exec_t,s0) /usr/lib/postfix/pipe -- gen_context(system_u:object_r:postfix_pipe_exec_t,s0) +/usr/lib/postfix/virtual -- gen_context(system_u:object_r:postfix_virtual_exec_t,s0) ') /etc/postfix/postfix-script.* -- gen_context(system_u:object_r:postfix_exec_t,s0) /etc/postfix/prng_exch -- gen_context(system_u:object_r:postfix_prng_t,s0) diff --git a/policy/modules/services/postfix.if b/policy/modules/services/postfix.if index 97e9297..bafbdf8 100644 --- a/policy/modules/services/postfix.if +++ b/policy/modules/services/postfix.if @@ -41,6 +41,8 @@ template(`postfix_domain_template',` allow postfix_$1_t self:unix_stream_socket connectto; allow postfix_master_t postfix_$1_t:process signal; + #https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=244456 + allow postfix_$1_t postfix_master_t:file read; allow postfix_$1_t postfix_etc_t:dir list_dir_perms; read_files_pattern(postfix_$1_t,postfix_etc_t,postfix_etc_t) @@ -66,6 +68,7 @@ template(`postfix_domain_template',` fs_search_auto_mountpoints(postfix_$1_t) fs_getattr_xattr_fs(postfix_$1_t) + fs_rw_anon_inodefs_files(postfix_$1_t) term_dontaudit_use_console(postfix_$1_t) @@ -138,10 +141,8 @@ template(`postfix_server_domain_template',` corenet_tcp_connect_all_ports(postfix_$1_t) corenet_sendrecv_all_client_packets(postfix_$1_t) - sysnet_read_config(postfix_$1_t) - optional_policy(` - nis_use_ypbind(postfix_$1_t) + auth_use_nsswitch(postfix_$1_t) ') ') @@ -275,6 +276,42 @@ interface(`postfix_dontaudit_rw_local_tcp_sockets',` ######################################## ## +## Allow domain to read postfix local process state +## +## +## +## Domain to not audit. +## +## +# +interface(`postfix_read_local_state',` + gen_require(` + type postfix_local_t; + ') + + read_files_pattern($1,postfix_local_t,postfix_local_t) +') + +######################################## +## +## Allow domain to read postfix master process state +## +## +## +## Domain to not audit. +## +## +# +interface(`postfix_read_master_state',` + gen_require(` + type postfix_master_t; + ') + + read_files_pattern($1,postfix_master_t,postfix_master_t) +') + +######################################## +## ## Do not audit attempts to use ## postfix master process file ## file descriptors. @@ -383,6 +420,25 @@ interface(`postfix_exec_master',` ######################################## ## +## Create a named socket in a postfix private directory. +## +## +## +## Domain allowed access. +## +## +# +interface(`postfix_create_pivate_sockets',` + gen_require(` + type postfix_private_t; + ') + + allow $1 postfix_private_t:dir list_dir_perms; + create_sock_files_pattern($1,postfix_private_t,postfix_private_t) +') + +######################################## +## ## Execute the master postfix program in the ## postfix_master domain. ## @@ -440,6 +496,25 @@ interface(`postfix_list_spool',` ######################################## ## +## Read postfix mail spool files. +## +## +## +## Domain allowed access. +## +## +# +interface(`postfix_read_spool_files',` + gen_require(` + type postfix_spool_t; + ') + + files_search_spool($1) + read_files_pattern($1,postfix_spool_t, postfix_spool_t) +') + +######################################## +## ## Execute postfix user mail programs ## in their respective domains. ## diff --git a/policy/modules/services/postfix.te b/policy/modules/services/postfix.te index bbd5002..f86f12f 100644 --- a/policy/modules/services/postfix.te +++ b/policy/modules/services/postfix.te @@ -1,5 +1,5 @@ -policy_module(postfix,1.6.1) +policy_module(postfix,1.6.2) ######################################## # @@ -83,6 +83,12 @@ files_type(postfix_public_t) type postfix_var_run_t; files_pid_file(postfix_var_run_t) +postfix_server_domain_template(virtual) +mta_mailserver_delivery(postfix_virtual_t) + +type postfix_virtual_tmp_t; +files_tmp_file(postfix_virtual_tmp_t) + ######################################## # # Postfix master process local policy @@ -158,6 +164,8 @@ domain_use_interactive_fds(postfix_master_t) files_read_usr_files(postfix_master_t) +term_dontaudit_search_ptys(postfix_master_t) + miscfiles_read_man_pages(postfix_master_t) seutil_sigchld_newrole(postfix_master_t) @@ -169,6 +177,10 @@ sysnet_read_config(postfix_master_t) mta_rw_aliases(postfix_master_t) mta_read_sendmail_bin(postfix_master_t) +optional_policy(` + auth_use_nsswitch(postfix_master_t) +') + ifdef(`targeted_policy',` term_dontaudit_use_unallocated_ttys(postfix_master_t) term_dontaudit_use_generic_ptys(postfix_master_t) @@ -184,9 +196,17 @@ optional_policy(` ') optional_policy(` + mysql_stream_connect(postfix_master_t) +') + +optional_policy(` nis_use_ypbind(postfix_master_t) ') +optional_policy(` + sendmail_signal(postfix_master_t) +') + ########################################################### # # Partially converted rules. THESE ARE ONLY TEMPORARY @@ -387,7 +407,7 @@ delete_files_pattern(postfix_pickup_t,postfix_spool_maildrop_t,postfix_spool_mai # Postfix pipe local policy # -allow postfix_pipe_t self:fifo_file { read write }; +allow postfix_pipe_t self:fifo_file rw_fifo_file_perms; write_sock_files_pattern(postfix_pipe_t,postfix_private_t,postfix_private_t) @@ -441,6 +461,11 @@ optional_policy(` cron_system_entry(postfix_postdrop_t, postfix_postdrop_exec_t) ') +# https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=239951 +optional_policy(` + fstools_read_pipes(postfix_postdrop_t) +') + optional_policy(` ppp_use_fds(postfix_postqueue_t) ppp_sigchld(postfix_postqueue_t) @@ -520,8 +545,6 @@ sysnet_dns_name_resolve(postfix_showq_t) # Postfix smtp delivery local policy # -allow postfix_smtp_t self:netlink_route_socket r_netlink_socket_perms; - # connect to master process stream_connect_pattern(postfix_smtp_t,{ postfix_private_t postfix_public_t },{ postfix_private_t postfix_public_t },postfix_master_t) @@ -529,6 +552,8 @@ allow postfix_smtp_t postfix_prng_t:file rw_file_perms; allow postfix_smtp_t postfix_spool_t:file rw_file_perms; +files_dontaudit_getattr_home_dir(postfix_smtp_t) + optional_policy(` cyrus_stream_connect(postfix_smtp_t) ') @@ -553,9 +578,41 @@ files_read_usr_files(postfix_smtpd_t) mta_read_aliases(postfix_smtpd_t) optional_policy(` + mailman_read_data_files(postfix_smtpd_t) +') + +optional_policy(` postgrey_stream_connect(postfix_smtpd_t) ') optional_policy(` sasl_connect(postfix_smtpd_t) ') + +######################################## +# +# Postfix virtual local policy +# + +allow postfix_virtual_t self:fifo_file rw_fifo_file_perms; +allow postfix_virtual_t self:process { setsched setrlimit }; + +allow postfix_virtual_t postfix_spool_t:file rw_file_perms; + +manage_dirs_pattern(postfix_virtual_t,postfix_virtual_tmp_t,postfix_virtual_tmp_t) +manage_files_pattern(postfix_virtual_t,postfix_virtual_tmp_t,postfix_virtual_tmp_t) +files_tmp_filetrans(postfix_virtual_t, postfix_virtual_tmp_t, { file dir }) + +# connect to master process +stream_connect_pattern(postfix_virtual_t,postfix_public_t,postfix_public_t,postfix_master_t) + +corecmd_exec_shell(postfix_virtual_t) +corecmd_exec_bin(postfix_virtual_t) + +files_read_etc_files(postfix_virtual_t) + +mta_read_aliases(postfix_virtual_t) +mta_delete_spool(postfix_virtual_t) +# For reading spamassasin +mta_read_config(postfix_virtual_t) +mta_manage_spool(postfix_virtual_t) diff --git a/policy/modules/system/locallogin.te b/policy/modules/system/locallogin.te index acfe74f..4252c3e 100644 --- a/policy/modules/system/locallogin.te +++ b/policy/modules/system/locallogin.te @@ -1,5 +1,5 @@ -policy_module(locallogin,1.4.1) +policy_module(locallogin,1.4.2) ######################################## # @@ -25,6 +25,7 @@ domain_subj_id_change_exemption(sulogin_t) domain_role_change_exemption(sulogin_t) domain_interactive_fd(sulogin_t) init_domain(sulogin_t,sulogin_exec_t) +init_system_domain(sulogin_t,sulogin_exec_t) role system_r types sulogin_t; ######################################## @@ -138,7 +139,6 @@ userdom_sigchld_all_users(local_login_t) userdom_create_all_users_keys(local_login_t) ifdef(`targeted_policy',` - unconfined_domain(local_login_t) unconfined_shell_domtrans(local_login_t) ') @@ -161,6 +161,13 @@ tunable_policy(`use_samba_home_dirs',` ') optional_policy(` + dbus_system_bus_client_template(local_login,local_login_t) + dbus_send_system_bus(local_login_t) + + consolekit_dbus_chat(local_login_t) +') + +optional_policy(` gpm_getattr_gpmctl(local_login_t) gpm_setattr_gpmctl(local_login_t) ') @@ -186,6 +193,11 @@ optional_policy(` alsa_domtrans(local_login_t) ') +optional_policy(` + xserver_read_xdm_tmp_files(local_login_t) + xserver_rw_xdm_tmp_files(local_login_t) +') + ################################# # # Sulogin local policy