This guide will take you through the steps of Installing postfix3 on CentOS 7 / RHEL 7. Before diving to installation of postfix 3 on CentOS 7, let’s first define what’s postfix.
What is Postfix?
Postfix, designed by Wietse Venema, is a mail server built with security in mind and specifically designed to replace Sendmail. Postfix is a free and open-source mail transfer agent (MTA) that routes and delivers electronic mail.
There are several different components to the email system which work together to move, deliver or retrieve your email. These includes but not limited to:
- Mail Transfer Agent (MTA)
- Mail Delivery Agent (MDA)
- Mail User Agent (MUA)
Postfix has several hundred configuration parameters that are controlled via the main.cf file.
Adding Postfix 3 repository to CentOS 7 / RHEL 7
Enable EPEL repository
sudo yum -y install epel-release yum-utils
Add Ghettoforge repository to your CentOS 7 system:
sudo yum --nogpg install https://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm
Hit the Y key in your keyboard to proceed with repository addition:
Examining /var/tmp/yum-root-ybrf7D/gf-release-latest.gf.el7.noarch.rpm: gf-release-7-12.gf.el7.noarch
Marking /var/tmp/yum-root-ybrf7D/gf-release-latest.gf.el7.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package gf-release.noarch 0:7-12.gf.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================================================================
Installing:
gf-release noarch 7-12.gf.el7 /gf-release-latest.gf.el7.noarch 4.5 k
Transaction Summary
======================================================================================================================================================================================================
Install 1 Package
Total size: 4.5 k
Installed size: 4.5 k
Is this ok [y/d/N]: y
Confirm repository is added successfully:
$ sudo yum repolist
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 15 kB 00:00:00
* base: nyc.mirrors.clouvider.net
* epel: d2lzkl7pfhq30w.cloudfront.net
* extras: us.mirror.nsec.pt
* updates: mirror.umd.edu
epel | 4.7 kB 00:00:00
gf | 2.9 kB 00:00:00
(1/4): epel/x86_64/updateinfo | 1.0 MB 00:00:00
(2/4): epel/x86_64/group_gz | 96 kB 00:00:00
(3/4): epel/x86_64/primary_db | 7.0 MB 00:00:00
(4/4): gf/x86_64/primary_db | 52 kB 00:00:00
repo id repo name status
base/7/x86_64 CentOS-7 - Base 10072
droplet-agent/x86_64 DigitalOcean Droplet Agent 5
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13667
extras/7/x86_64 CentOS-7 - Extras 500
gf/x86_64 Ghettoforge packages that won't overwrite core distro packages. 86
updates/7/x86_64 CentOS-7 - Updates 2747
repolist: 27077
Install Postfix 3 repository to CentOS 7 / RHEL 7
Enable gf-plus repository:
sudo yum-config-manager --enable gf-plus
Test by searching postfix3 packages:
$ sudo yum search postfix3
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: nyc.mirrors.clouvider.net
* epel: d2lzkl7pfhq30w.cloudfront.net
* extras: us.mirror.nsec.pt
* updates: mirror.umd.edu
======================================================================================= N/S matched: postfix3 ========================================================================================
postfix3.x86_64 : Postfix Mail Transport Agent
postfix3-cdb.x86_64 : CDB Database Support for Postfix
postfix3-ldap.x86_64 : LDAP Database Support for Postfix
postfix3-lmdb.x86_64 : LMDBtabase Support for Postfix
postfix3-mysql.x86_64 : MySQL Database Support for Postfix
postfix3-pcre.x86_64 : PCRE Database Support for Postfix
postfix3-pgsql.x86_64 : PostgreSQL Database Support for Postfix
postfix3-sqlite.x86_64 : SQLite Database Support for Postfix
postfix3-utils.x86_64 : Postfix utilities
Name and summary matches only, use "search all" for everything
Remove current postfix 2.x version if installed:
sudo yum -y remove postfix*
Proceed to Installing postfix3 on CentOS 7. Add any additional packages you want.
sudo yum clean all
sudo yum makecache
sudo yum install postfix3 postfix3-ldap postfix3-mysql postfix3-utils
Continue with the installation:
....
Dependencies Resolved
....
Transaction Summary
======================================================================================================================================================================================================
Install 4 Packages (+32 Dependent packages)
Total download size: 23 M
Installed size: 75 M
Is this ok [y/d/N]: y
Ensure you import GPG keys when asked so:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 8.0 MB/s | 23 MB 00:00:02
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-gf.el7
Importing GPG key 0xDA8B7718:
Userid : "Ghettoforge (el7) <[email protected]>"
Fingerprint: b43e a892 86f4 b6fd ff83 fed1 d005 ae31 da8b 7718
Package : gf-release-7-12.gf.el7.noarch (@/gf-release-latest.gf.el7.noarch)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-gf.el7
Is this ok [y/N]: y
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
Userid : "Fedora EPEL (7) <[email protected]>"
Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
Package : epel-release-7-11.noarch (@extras)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Is this ok [y/N]: y
Check installed postfix3 version:
$ rpm -qi postfix3
Name : postfix3
Epoch : 2
Version : 3.8.0
Release : 1.gf.el7
Architecture: x86_64
Install Date: Tue 06 Jun 2023 01:45:57 AM UTC
Group : System Environment/Daemons
Size : 10293012
License : IBM
Signature : RSA/SHA1, Tue 18 Apr 2023 09:20:05 AM UTC, Key ID d005ae31da8b7718
Source RPM : postfix3-3.8.0-1.gf.el7.src.rpm
Build Date : Tue 18 Apr 2023 09:16:19 AM UTC
Build Host : giants.ghettoforge.org
Relocations : (not relocatable)
Packager : [email protected]
Vendor : GhettoForge
....
Managing postfix3 service
To start postfix3 on CentOS 7, do:
sudo systemctl start postfix.service
Enable postfix to start on boot up:
sudo systemctl enable postfix
Check postfix status:
$ systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2023-06-06 01:46:54 UTC; 7s ago
Main PID: 2615 (master)
CGroup: /system.slice/postfix.service
├─2615 /usr/libexec/postfix/master -w
├─2616 pickup -l -t unix -u
└─2617 qmgr -l -t unix -u
Jun 06 01:46:53 cent7.mylab.io systemd[1]: Starting Postfix Mail Transport Agent...
Jun 06 01:46:54 cent7.mylab.io postfix[2541]: postfix/postlog: starting the Postfix mail system
Jun 06 01:46:54 cent7.mylab.io postfix/master[2615]: daemon started -- version 3.8.0, configuration /etc/postfix
Jun 06 01:46:54 cent7.mylab.io systemd[1]: Started Postfix Mail Transport Agent.
Open postfix smtp and smtps ports on firewall if SMTP service is consumed outside the server
sudo firewall-cmd --add-service={smtp,smtps} --permanent
Confirm firewall configurations:
$ sudo firewall-cmd --list-services
http smtp dhcpv6-client snmp smtps ssh https
Now you are rolling with Postfix3 on your CentOS 7 server. In our next tutorial, I’ll cover how to integrate LDAP and postfix for relay access restrictions. Until then, keep checking for new articles and subscribe to our email alerts.
After installing Postfix, you can look at my cheat sheet on Postfix administration:
More guides on mail services: