The asterisk processes execute with the asterisk_t
SELinux type. You can check if you have these processes
running by executing the ps com- mand with the -Z
qualifier.

For example:

ps -eZ | grep asterisk_t

ENTRYPOINTS The asterisk_t SELinux type can be entered
via the asterisk_exec_t file type.

The default entrypoint paths for the asterisk_t domain
are the follow- ing:

/usr/sbin/asterisk

PROCESS TYPES SELinux defines process types (domains)
for each process running on the system

You can see the context of a process using the -Z option
to ps

Policy governs the access confined processes have to
files. SELinux asterisk policy is very flexible allowing
users to setup their asterisk processes in as secure a
method as possible.

The following process types are defined for
asterisk:

asterisk_t

Note: semanage permissive -a asterisk_t can be used to
make the process type asterisk_t permissive. SELinux does
not deny access to permissive process types, but the AVC
(SELinux denials) messages are still gener- ated.

BOOLEANS SELinux policy is customizable based on least
access required. aster- isk policy is extremely flexible and
has several booleans that allow you to manipulate the policy
and run asterisk with the tightest access possible.

If you want to allow all daemons to write corefiles to
/, you must turn on the allow_daemons_dump_core boolean.
Disabled by default.

setsebool -P allow_daemons_dump_core 1

If you want to allow all daemons to use tcp wrappers,
you must turn on the allow_daemons_use_tcp_wrapper boolean.
Disabled by default.

setsebool -P allow_daemons_use_tcp_wrapper 1

If you want to allow all daemons the ability to
read/write terminals, you must turn on the
allow_daemons_use_tty boolean. Disabled by default.

setsebool -P allow_daemons_use_tty 1

If you want to allow all domains to use other domains
file descriptors, you must turn on the allow_domain_fd_use
boolean. Enabled by default.

setsebool -P allow_domain_fd_use 1

If you want to allow confined applications to run with
kerberos, you must turn on the allow_kerberos boolean.
Enabled by default.

setsebool -P allow_kerberos 1

If you want to allow sysadm to debug or ptrace all
processes, you must turn on the allow_ptrace boolean.
Disabled by default.

setsebool -P allow_ptrace 1

If you want to allow system to run with NIS, you must
turn on the allow_ypbind boolean. Disabled by default.

setsebool -P allow_ypbind 1

If you want to allow all domains to have the kernel load
modules, you must turn on the domain_kernel_load_modules
boolean. Disabled by default.

setsebool -P domain_kernel_load_modules 1

If you want to allow all domains to execute in
fips_mode, you must turn on the fips_mode boolean. Enabled
by default.

setsebool -P fips_mode 1

If you want to enable reading of urandom for all
domains, you must turn on the global_ssp boolean. Disabled
by default.

setsebool -P global_ssp 1

If you want to enable support for upstart as the init
program, you must turn on the init_upstart boolean. Enabled
by default.

setsebool -P init_upstart 1

If you want to allow confined applications to use nscd
shared memory, you must turn on the nscd_use_shm boolean.
Enabled by default.

setsebool -P nscd_use_shm 1

PORT TYPES SELinux defines port types to represent TCP
and UDP ports.

You can see the types associated with a port by using
the following command:

semanage port -l

Policy governs the access confined processes have to
these ports. SELinux asterisk policy is very flexible
allowing users to setup their asterisk processes in as
secure a method as possible.

The following port types are defined for asterisk:

asterisk_port_t

Default Defined Ports: tcp 1720 udp 2427,2727,4569

MANAGED FILES The SELinux process type asterisk_t can
manage files labeled with the following file types. The
paths listed are the default paths for these file types.
Note the processes UID still need to have DAC
permissions.

asterisk_log_t

/var/log/asterisk(/.*)?

asterisk_spool_t

/var/spool/asterisk(/.*)?

asterisk_tmp_t

asterisk_tmpfs_t

asterisk_var_lib_t

/var/lib/asterisk(/.*)?

asterisk_var_run_t

/var/run/asterisk(/.*)?

root_t

/ /initrd

FILE CONTEXTS SELinux requires files to have an extended
attribute to define the file type.

You can see the context of a file using the -Z option to
ls

Policy governs the access confined processes have to
these files. SELinux asterisk policy is very flexible
allowing users to setup their asterisk processes in as
secure a method as possible.

STANDARD FILE CONTEXT

SELinux defines the file context types for the asterisk,
if you wanted to store files with these types in a diffent
paths, you need to execute the semanage command to sepecify
alternate labeling and then use restorecon to put the labels
on disk.

- Set files with the asterisk_etc_t type, if you want to
store asterisk files in the /etc directories.

asterisk_exec_t

- Set files with the asterisk_exec_t type, if you want
to transition an executable to the asterisk_t domain.

asterisk_initrc_exec_t

- Set files with the asterisk_initrc_exec_t type, if you
want to tran- sition an executable to the asterisk_initrc_t
domain.

asterisk_log_t

- Set files with the asterisk_log_t type, if you want to
treat the data as asterisk log data, usually stored under
the /var/log directory.

asterisk_spool_t

- Set files with the asterisk_spool_t type, if you want
to store the asterisk files under the /var/spool
directory.

asterisk_tmp_t

- Set files with the asterisk_tmp_t type, if you want to
store asterisk temporary files in the /tmp directories.

asterisk_tmpfs_t

- Set files with the asterisk_tmpfs_t type, if you want
to store aster- isk files on a tmpfs file system.

asterisk_var_lib_t

- Set files with the asterisk_var_lib_t type, if you
want to store the asterisk files under the /var/lib
directory.

asterisk_var_run_t

- Set files with the asterisk_var_run_t type, if you
want to store the asterisk files under the /run or /var/run
directory.

Note: File context can be temporarily modified with the
chcon command. If you want to permanently change the file
context you need to use the semanage fcontext command. This
will modify the SELinux labeling database. You will need to
use restorecon to apply the labels.

COMMANDS semanage fcontext can also be used to
manipulate default file context mappings.

semanage permissive can also be used to manipulate
whether or not a process type is permissive.

semanage module can also be used to
enable/disable/install/remove pol- icy modules.

semanage port can also be used to manipulate the port
definitions

semanage boolean can also be used to manipulate the
booleans

system-config-selinux is a GUI tool available to
customize SELinux pol- icy settings.