Configurando um servidor de Email

O que ando aprendendo nesta caminhada sobre a Terra

Setting up an E-mail server

Tenho meu próprio servidor de e-mail utilizando ;Postfix, Dovecot, MariaDB, Spamassassin, ClamAV, Amavisd-new, Fail2ban, Nginx, Postfixadmin and Roundcube ;under CentOS 8.
Although it has several recipes for how to configure this package, It took me many hours to figure out how to keep the service running correctly, each configuration in the and in the and in the end manage to reduce the flood of spam that arrives every instant.
And anti-spam is the focus of this publication. I have suffered and still suffer with the constant attempts to use my services as a zombie or shedding of viruses, fraud and everything else you can.

I lost count of how many times my DNS service stopped by excess of connection attempts to entupiam the memory and forced the s.. a cortar processos para economizar recursos e o ;named ;was chosen for being the weakest link.
So, This article has focus in the proper configuration for private mail services, a few users and few domains. Certainly a lot of what is in this short manual serves to world-class services, but I believe that for these cases the use of tools or dedicated and specialized services should always be taken into consideration.

Então deixemos de lado o falatório para irmos direto ao ;hands-on.

Installation of packages

The first step is to install all the packages that will be used. Roundcube and Postfixadmin run under a PHP-supported webserver whose email accounts can be stored on a database server. How do I use Nginx Webserver and although I prefer PostgreSQL will use the MariaDB as DBMS due to the fact that most of the uses (due to WordPress probably).

So, at the end of the installation process, we should have installed some new package repositories.

Activate the Extra repositories to your distribution Packages, If you haven't already. For CentOS 8 the command below will do that.

$ sudo dnf install epel-release

Additionally, install the packages Curl, htop, I came, yum-utils, wget, NET-tools, chrony and certbot that will be needed at other points in the configuration.

$ sudo dnf install -y curl htop vim yum-utils wget net-tools chrony certbot


Postfix ;is an MTA (mail transfer agent). An MTA bridges the gap between the computers for the exchange of electronic mail messages. For our case, is the main element.

The version of Postfix that I'll use in this document is the 3.3. To find out which version will be installed type:

$ sudo dnf info postfix

To install run the command

$ sudo dnf install -y postfix postfix-mysql postfix-pcre

Let's leave the service stopped for now but already set to open along with the operating system.

$ sudo systemctl enable postfix


Dovecot ;is an Imap and Pop3 mail server. With it we can send and receive messages via Postfix and among other things control the access to the service via authentication.
To install Dovecot with mysql support just run the command:

$ sudo dnf install -y dovecot dovecot-mysql

Once again, We will activate the service but leave it standing.

$ sudo systemctl enable dovecot


Amavis ;is a content filter for e-mail. With it is possible to filter harmful messages using settings against spam, viruses and other malware. Below the commands that install. It requires many government offices that will be updated and/or installed with. Uma dessas dependencias é o ;SpamAssassin ;that will be configured later, along with all the other packages we're installing.

First make sure that the PowerTools repositorio is enabled, because it is from it that we will install amavisd-new.

$ sudo dnf config-manager --set-enabled powertools

Em seguida instalamos o Amavis e algumas dependencias sendo uma delas o ;ClamAV ;It's a simple and very efficient antivirus for the most common types of threats and completely free.

$ sudo dnf -y install amavisd-new clamd perl-Digest-SHA1 perl-IO-stringy

Again, Let's turn to services that always start automatically, but for now leaving them standing.

$ sudo systemctl enable amavisd spamassassin

MariaDB (or MySQL)

Normally, quem usa WordPress já possui instalado e configurado o ;MariaDB ;or MySQL. If that's the case, can skip this step.

I prefer PostgreSQL, but as the intent of this document is to allow can have its own services DevOps and can not always have multiple instances I decided to use the MariaDB. In this way, If you need to add the WordPress, no need to add an additional DBMS or even use wrappers to have PostgreSQL support.

Don't worry about the settings at this point, because I will detail them later in another publication. Continuing with the installation we should run the command:

$ sudo dnf install -y mariadb-server

and then activate the service to start along with the system

$ sudo systemctl enable mariadb

Webserver (Nginx + Php-Fpm)

The last elements to be installed are part of the Webserver. It is possible that you already have a running as Apache then this point can be skipped. If you are starting a new server or if you have no intimacy with apache and PHP configuration, I recommend following the tips of this installation.

Eu gosto muito do ;Nginx ;e vou usar em conjunto com o ;Php-Fpm.

$ sudo dnf install -y nginx php-fpm

At this point we have all the necessary files to start the configuration of the mail server.

I'm too lazy

Don't like typing or is not concerned in the details of each item installed. Your problems are over!

You can run any command of this document with the following lines:

ATTENTION! This script is just a file with command lines. Eventually may not work properly depending on your system settings.

$ sudo dnf update
$ sudo dnf install -y epel-release
$ sudo dnf config-manager --set-enabled powertools
$ sudo dnf -y install --enable-repo=epel-release,powertools curl htop vim yum-utils wget net-tools chrony certbot postfix dovecot amavisd-new clamd perl-Digest-SHA1 perl-IO-stringy mariadb-server ngixn php-fpm
$ sudo systemctl enable postfix mariadb spamassassin amavisd dovecot nginx php-fpm 

With everything installed we can start the settings. Comecemos pelo ;MariaDB.


2 Responses

  1. […] This is the second part of the process of creating the mail server on a CentOS 8. If you came here by accident, You should read first the previous publication on the Instalação dos Pacotes […]

  2. […] que já estava em “cruise flight” and that includes the mail server that I even wrote a tutorial. To maintain tradition, according to I'm going to I've been running the steps of the configuration […]

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.