Product SiteDocumentation Site

Chapter 23. Postfix

23.1. Postfix and SELinux
23.2. Types
23.3. Booleans
23.4. Configuration Examples
23.4.1. SpamAssassin and Postfix
Postfix is an open-source Mail Transport Agent (MTA), which supports protocols like LDAP, SMTP AUTH (SASL), and TLS.[25]
In Fedora, the postfix package provides Postfix. Run the following command to see if the postfix package is installed:
~]$ rpm -q postfix
package postfix is not installed
If it is not installed, use the DNF utility root to install it:
~]# dnf install postfix

23.1. Postfix and SELinux

When Postfix is enabled, it runs confined by default. Confined processes run in their own domains, and are separated from other confined processes. If a confined process is compromised by an attacker, depending on SELinux policy configuration, an attacker's access to resources and the possible damage they can do is limited. The following example demonstrates the Postfix and related processes running in their own domain. This example assumes the postfix package is installed and that the Postfix service has been started:
  1. Run the getenforce command to confirm SELinux is running in enforcing mode:
    ~]$ getenforce
    The command returns Enforcing when SELinux is running in enforcing mode.
  2. Run the following command as the root user to start postfix:
    ~]# systemctl start postfix.service
    Confirm that the service is running. The output should include the information below (only the time stamp will differ):
    ~]# systemctl status postfix.service
    postfix.service - Postfix Mail Transport Agent
       Loaded: loaded (/usr/lib/systemd/system/postfix.service; disabled)
       Active: active (running) since Mon 2013-08-05 11:38:48 CEST; 3h 25min ago
  3. Run following command to view the postfix processes:
    ~]$ ps -eZ | grep postfix
    system_u:system_r:postfix_master_t:s0 1651 ?   00:00:00 master
    system_u:system_r:postfix_pickup_t:s0 1662 ?   00:00:00 pickup
    system_u:system_r:postfix_qmgr_t:s0 1663 ?     00:00:00 qmgr
    In the output above, the SELinux context associated with the Postfix master process is system_u:system_r:postfix_master_t:s0. The second last part of the context, postfix_master_t, is the type for this process. A type defines a domain for processes and a type for files. In this case, the master process is running in the postfix_master_t domain.

[25] Refer to the Postfix project page for more information.