|
Chris PeBenito |
ab58ad |
#DESC INN - InterNetNews server
|
|
Chris PeBenito |
ab58ad |
#
|
|
Chris PeBenito |
ab58ad |
# Author: Faye Coker <faye@lurking-grue.org>
|
|
Chris PeBenito |
ab58ad |
# X-Debian-Packages: inn
|
|
Chris PeBenito |
ab58ad |
#
|
|
Chris PeBenito |
ab58ad |
################################
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
# Types for the server port and news spool.
|
|
Chris PeBenito |
ab58ad |
#
|
|
Chris PeBenito |
ab58ad |
type news_spool_t, file_type, sysadmfile;
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
# need privmail attribute so innd can access system_mail_t
|
|
Chris PeBenito |
ab58ad |
daemon_domain(innd, `, privmail')
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
# allow innd to create files and directories of type news_spool_t
|
|
Chris PeBenito |
ab58ad |
create_dir_file(innd_t, news_spool_t)
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
# allow user domains to read files and directories these types
|
|
Chris PeBenito |
ab58ad |
r_dir_file(userdomain, { news_spool_t innd_var_lib_t innd_etc_t })
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
can_exec(initrc_t, innd_etc_t)
|
|
Chris PeBenito |
ab58ad |
can_exec(innd_t, { innd_exec_t bin_t shell_exec_t })
|
|
Chris PeBenito |
ab58ad |
ifdef(`hostname.te', `
|
|
Chris PeBenito |
ab58ad |
can_exec(innd_t, hostname_exec_t)
|
|
Chris PeBenito |
ab58ad |
')
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
allow innd_t var_spool_t:dir { getattr search };
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
can_network(innd_t)
|
|
Chris PeBenito |
ab58ad |
allow innd_t port_type:tcp_socket name_connect;
|
|
Chris PeBenito |
ab58ad |
can_ypbind(innd_t)
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
can_unix_send( { innd_t sysadm_t }, { innd_t sysadm_t } )
|
|
Chris PeBenito |
ab58ad |
allow innd_t self:unix_dgram_socket create_socket_perms;
|
|
Chris PeBenito |
ab58ad |
allow innd_t self:unix_stream_socket create_stream_socket_perms;
|
|
Chris PeBenito |
ab58ad |
can_unix_connect(innd_t, self)
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
allow innd_t self:fifo_file rw_file_perms;
|
|
Chris PeBenito |
ab58ad |
allow innd_t innd_port_t:tcp_socket name_bind;
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
allow innd_t self:capability { dac_override kill setgid setuid net_bind_service };
|
|
Chris PeBenito |
ab58ad |
allow innd_t self:process setsched;
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
allow innd_t { bin_t sbin_t }:dir search;
|
|
Chris PeBenito |
ab58ad |
allow innd_t usr_t:lnk_file read;
|
|
Chris PeBenito |
ab58ad |
allow innd_t usr_t:file { getattr read ioctl };
|
|
Chris PeBenito |
ab58ad |
allow innd_t lib_t:file ioctl;
|
|
Chris PeBenito |
ab58ad |
allow innd_t etc_t:file { getattr read };
|
|
Chris PeBenito |
ab58ad |
allow innd_t { proc_t etc_runtime_t }:file { getattr read };
|
|
Chris PeBenito |
ab58ad |
allow innd_t urandom_device_t:chr_file read;
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
allow innd_t innd_var_run_t:sock_file create_file_perms;
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
# allow innd to read directories of type innd_etc_t (/etc/news/(/.*)? and symbolic links with that type
|
|
Chris PeBenito |
ab58ad |
etcdir_domain(innd)
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
# allow innd to create files under /var/log of type innd_log_t and have a directory for its own files that
|
|
Chris PeBenito |
ab58ad |
# it can write to
|
|
Chris PeBenito |
ab58ad |
logdir_domain(innd)
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
# allow innd read-write directory permissions to /var/lib/news.
|
|
Chris PeBenito |
ab58ad |
var_lib_domain(innd)
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
ifdef(`crond.te', `
|
|
Chris PeBenito |
ab58ad |
system_crond_entry(innd_exec_t, innd_t)
|
|
Chris PeBenito |
ab58ad |
allow system_crond_t innd_etc_t:file { getattr read };
|
|
Chris PeBenito |
ab58ad |
rw_dir_create_file(system_crond_t, innd_log_t)
|
|
Chris PeBenito |
ab58ad |
rw_dir_create_file(system_crond_t, innd_var_run_t)
|
|
Chris PeBenito |
ab58ad |
')
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
ifdef(`syslogd.te', `
|
|
Chris PeBenito |
ab58ad |
allow syslogd_t innd_log_t:dir search;
|
|
Chris PeBenito |
ab58ad |
allow syslogd_t innd_log_t:file create_file_perms;
|
|
Chris PeBenito |
ab58ad |
')
|
|
Chris PeBenito |
ab58ad |
|
|
Chris PeBenito |
ab58ad |
allow innd_t self:file { getattr read };
|
|
Chris PeBenito |
ab58ad |
dontaudit innd_t selinux_config_t:dir { search };
|
|
Chris PeBenito |
ab58ad |
allow system_crond_t innd_etc_t:file { getattr read };
|
|
Chris PeBenito |
ab58ad |
allow innd_t bin_t:lnk_file { read };
|
|
Chris PeBenito |
ab58ad |
allow innd_t sbin_t:lnk_file { read };
|