Originally developed at IBM by security expert and programmer Wietse Venema, Postfix is a Sendmail-compatible MTA that is designed to be secure, fast, and easy to configure.
To improve security, Postfix uses a modular design, where small processes with limited privileges are launched by a master daemon. The smaller, less privileged processes perform very specific tasks related to the various stages of mail delivery and run in a change rooted environment to limit the effects of attacks.
Configuring Postfix to accept network connections from hosts other than the local computer takes only a few minor changes in its configuration file. Yet for those with more complex needs, Postfix provides a variety of configuration options, as well as third party add ons that make it a very versatile and full-featured MTA.
The configuration files for Postfix are human readable and support upward of 250 directives. Unlike Sendmail, no macro processing is required for changes to take effect and the majority of the most commonly used options are described in the heavily commented files.
13.3.2.1. The Default Postfix Installation
The Postfix executable is /usr/sbin/postfix
. This daemon launches all related processes needed to handle mail delivery.
Postfix stores its configuration files in the /etc/postfix/
directory. The following is a list of the more commonly used files:
access
— Used for access control, this file specifies which hosts are allowed to connect to Postfix.
aliases
— A configurable list required by the mail protocol.
main.cf
— The global Postfix configuration file. The majority of configuration options are specified in this file.
master.cf
— Specifies how Postfix interacts with various processes to accomplish mail delivery.
transport
— Maps email addresses to relay hosts.
Important
The default
/etc/postfix/main.cf
file does not allow Postfix to accept network connections from a host other than the local computer. For instructions on configuring Postfix as a server for other clients, refer to
Section 13.3.2.2, “Basic Postfix Configuration”.
When changing some options within files in the /etc/postfix/
directory, it may be necessary to restart the postfix
service for the changes to take effect. The easiest way to do this is to type the following command:
/sbin/service postfix restart
13.3.2.2. Basic Postfix Configuration
By default, Postfix does not accept network connections from any host other than the local host. Perform the following steps as root to enable mail delivery for other hosts on the network:
Edit the /etc/postfix/main.cf
file with a text editor, such as vi
.
Uncomment the mydomain
line by removing the hash mark (#
), and replace domain.tld
with the domain the mail server is servicing, such as example.com
.
Uncomment the myorigin = $mydomain
line.
Uncomment the myhostname
line, and replace host.domain.tld
with the hostname for the machine.
Uncomment the mydestination = $myhostname, localhost.$mydomain
line.
Uncomment the mynetworks
line, and replace 168.100.189.0/28
with a valid network setting for hosts that can connect to the server.
Uncomment the inet_interfaces = all
line.
Comment the inet_interfaces = localhost
line.
Restart the postfix
service.
Once these steps are complete, the host accepts outside emails for delivery.
Postfix has a large assortment of configuration options. One of the best ways to learn how to configure Postfix is to read the comments within
/etc/postfix/main.cf
. Additional resources including information about LDAP and SpamAssassin integration are available online at
http://www.postfix.org/.