Configuring SELinux Security Policies |
If your GNU/Linux distribution includes SELinux (Security-Enhanced Linux), you may need to configure SELinux security policies to get the servicing components of Dr.Web for UNIX Mail Servers (such as the scan engine) to operate correctly after the installation. Universal Package Installation Issues If SELinux is enabled, installation from the installation file (.run) can fail because an attempt to create the drweb user, under which Dr.Web for UNIX Mail Servers components operate, can be blocked. If installation of Dr.Web for UNIX Mail Servers from the file fails due to inability to create the drweb user, check the SELinux operation mode with the getenforce command. The command outputs the current scanning mode: •Permissive—protection is active but a permissive strategy is used: actions that violate the security policy are not denied but information on the actions is logged; •Enforced—protection is active and restrictive strategy is used: actions that violate security policies are blocked and information on the actions is logged; •Disabled—SELinux is installed but not active. If SELinux is operating in Enforced mode, change it to Permissive. For that purpose, use the command:
This command (until the next reboot) enables Permissive mode for SELinux.
After the successful Dr.Web for UNIX Mail Servers installation, enable the Enforced mode again before starting the product. For that, use the command:
Dr.Web for UNIX Mail Servers Operation Issues In certain cases when SELinux is running, several Dr.Web for UNIX Mail Servers components (such as drweb-se and drweb-filecheck) can not launch. which causes the impossibility of objects scanning and file system monitoring. The sign of the impossibility of launching these components is the appearance of 119 and 120 error messages in system log, managed by syslog service (typically this log is located in /var/log/ directory). When the SELinux security system denies access, such an event is logged. In general, when the audit daemon is used on the system, the log of the audit is stored in the /var/log/audit/audit.log file. Otherwise, messages about blocked operations are saved to the general log file (/var/log/messages or /var/log/syslog). If the scanning components of the product do not function because they are blocked by SELinux, you will need to compile special security policies for them.
To Сonfigure SELinux Security Policies 1.Create a new file with the SELinux policy source code (a .te file). This file defines restrictions related to the described policy module. The policy source code can be created in one of the following ways. 1)Using the audit2allow utility, which is the simplest method. The utility generates permissive rules from messages on access denial in system log files. You can set to search messages automatically or specify a path to the log file manually.
Example of using audit2allow:
In the given example, the audit2allow utility performs a search in the /var/log/audit/audit.log file to find access denial messages for the drweb-se component. The following two files are created: policy source file drweb-se.te and the drweb-se.pp policy module ready to install. If no security violation incidents are found in the system audit log, the utility returns an error message. In most cases, you do not need to modify the policy file created by the audit2allow utility. Thus, it is recommended to go to step 4 for installation of the drweb-se.pp policy module.
2)Using the policygentool utility. For that purpose, specify the name of the component that you want to be treated differently and the full path to its executable file.
Example of policy creation using policygentool: •for the drweb-se component:
•for the drweb-filecheck component:
You will be prompted to specify several general properties for created the domain. After that, three files that determine the policy will be created (for each of the components): <module_name>.te, <module_name>.fc and <module_name>.if. 2.If required, edit the generated policy source file <module_name>.te and then use the checkmodule utility to create a binary representation (a .mod file) of this source file of the local policy.
Usage example:
3.Create a policy module for installation (a .pp file) with the help of the semodule_package utility. Example:
4.To install the created policy module, use the semodule utility. Example:
For details on SELinux operation and configuration, refer to documentation for your UNIX distribution. |