Postfix

From Nuclear Physics Group Documentation Pages
Revision as of 16:38, 13 November 2018 by Maurik (talk | contribs) (→‎Centos 7 Postfix)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Postfix is a mail transfer agent that routes and delivers e-mail.

Diagnosis

What you can do to check if postfix is working.


Centos 7 Postfix

We upgraded Einstein to Centos 7 and a newer version of postfix.

Configuration Specifics

To combat spam, we require any hosts that connect to postfix to have a resolvable DNS name. There is a specific exception to this rule for systems in the "client-access" list. This is needed for JLab, where you are not resolvable to outside systems.

In the /etc/postfix/main.cf file:

 smtpd_client_restrictions = check_client_access hash:/etc/postfix/client_access, reject_unknown_reverse_client_hostname

the client_access file:

  129.57.113.29    OK
  129.57.    OK
  bad.domain REJECT

OUTDATED OLD POSTFIX

Configuration

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. Empty, except for comment documentation
aliases
A configurable list required by the mail protocol. Not present
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. Has one significant line: xemed.com smtp:gm.xemed.com

Basic Postfix Configuration

Make sure that you use the system-switch-mail or system-switch-mail-gnome program to select Postfix as the default MTA. If you don't, you'll thrash the mail system and lose mail!

README

Standard Postfix Configuration

Slightly more advanced configuration: README

From RedHat:

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:

  1. Edit the /etc/postfix/main.cf file with a text editor, such as vi.
  2. 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.
  3. Uncomment the myorigin = $mydomain line.
  4. Uncomment the myhostname line, and replace host.domain.tld with the hostname for the machine.
  5. Uncomment the mydestination = $myhostname, localhost.$mydomain line.
  6. Uncomment the mynetworks line, and replace 168.100.189.0/28 with a valid network setting for hosts that can connect to the server.
  7. Uncomment the inet_interfaces = all line.
  8. Restart the postfix service.

Once these steps are complete, the host accepts outside emails for delivery.

However, much of this is actually unnecessary since Postfix has intellegent defaults (e.g. it can figure out the machine's hostname automatically). Follow the Postfix readme instead.

Database Configuration

Setting up Postfix to cooperate with LDAP: README

ldap_table

Postfix Architecture Overview

How Postfix recieves mail

Postfix-get.png

We use smtpd. Yes, our "sendmail" isn't the real thing, but rather a Postfix component.

How Postfix delivers mail

Postfix-send.png

External Information