Configurer Postfix MTA et IMAP / POP3

Afin d'envoyer un e-mail à partir de notre serveur CentOS 7, nous aurons besoin de la configuration pour configurer un agent de transfert de courrier (MTA) moderne. Mail Transfer Agent est le démon responsable de l'envoi du courrier sortant pour les utilisateurs du système ou les domaines Internet d'entreprise via SMTP.

Il est à noter que ce tutoriel enseigne uniquement le processus de configuration du démon pour une utilisation locale. Nous n'entrons pas dans les détails sur la configuration avancée pour la mise en place d'un MTA pour les opérations commerciales. Il s'agit d'une combinaison de nombreuses compétences, y compris, mais sans s'y limiter: DNS, obtention d'une adresse IP routable statique qui n'est pas sur liste noire et configuration des paramètres de sécurité et de service avancés. En bref, ce tutoriel est destiné à vous familiariser avec la configuration de base. N'utilisez pas ce didacticiel pour la configuration MTA d'un hôte connecté à Internet.

Avec son accent combiné sur la sécurité et la facilité d'administration, nous avons choisi Postfixen tant que MTA pour ce didacticiel. Le MTA par défaut installé dans les anciennes versions de CentOS est Sendmail .Sendmailest un excellent MTA. Cependant, de l'humble opinion de l'auteur, Postfix atteint un point idéal en adressant les notes suivantes pour un MTA. Avec la version la plus récente de CentOS, Postfix a remplacé Sendmail comme MTA par défaut.

Postfix est un MTA largement utilisé et bien documenté. Il est activement maintenu et développé. Il nécessite une configuration minimale à l'esprit (il ne s'agit que d'un courrier électronique) et est efficace avec les ressources système (encore une fois, il ne s'agit que d'un courrier électronique).

Step 1 - Installez Postfix depuis YUM Package Manager.

[[email protected]]# yum -y install postfix

Step 2 - Configurer le fichier de configuration de Postfix.

Le fichier de configuration de Postfix se trouve dans: /etc/postfix/main.cf

Dans une configuration Postfix simple, les éléments suivants doivent être configurés pour un hôte spécifique: nom d'hôte, domaine, origine, inet_interfaces et destination.

Configure the hostname- Le nom d'hôte est un nom de domaine complet de l'hôte Postfix. Dans le chapitre OpenLDAP, nous avons nommé la boîte CentOS: centos sur le domaine vmnet.local . Tenons-nous-en à cela pour ce chapitre.

# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
myhostname = centos.vmnet.local

Configure the domain- Comme indiqué ci-dessus, le domaine que nous utiliserons dans ce tutoriel est vmnet.local

# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
mydomain = vmnet.local

Configure the origin - Pour une configuration de serveur et de domaine unique, il suffit de décommenter les sections suivantes et de laisser les variables Postfix par défaut.

# SENDING MAIL
#
# The myorigin parameter specifies the domain that locally-posted
# mail appears to come from. The default is to append $myhostname,
# which is fine for small sites.  If you run a domain with multiple
# machines, you should (1) change this to $mydomain and (2) set up
# a domain-wide alias database that aliases each user to
# [email protected]
#
# For the sake of consistency between sender and recipient addresses,
# myorigin also specifies the default domain name that is appended
# to recipient addresses that have no @domain part. 
#
myorigin = $myhostname
myorigin = $mydomain

Configure the network interfaces- Nous laisserons Postfix à l'écoute sur notre interface réseau unique et tous les protocoles et adresses IP associés à cette interface. Cela se fait en laissant simplement les paramètres par défaut activés pour Postfix.

# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on.  By default,
# the software claims all active interfaces on the machine. The
# parameter also controls delivery of mail to [email protected][ip.address].
#
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes. 
#
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
# Enable IPv4, and IPv6 if supported
inet_protocols = all

Step 3 - Configurer la prise en charge SASL pour Postfix.

Sans la prise en charge de l'authentification SASL, Postfix autorisera uniquement l'envoi d'e-mails à partir d'utilisateurs locaux. Ou cela donnera une erreur de refus de relais lorsque les utilisateurs envoient des e-mails à partir du domaine local.

Note - SASL ou Simple Application Security Layer Frameworkest un cadre conçu pour l'authentification prenant en charge différentes techniques parmi différents protocoles de la couche application. Au lieu de laisser les mécanismes d'authentification au protocole de la couche application, les développeurs (et les consommateurs) SASL exploitent les protocoles d'authentification actuels pour les protocoles de niveau supérieur qui peuvent ne pas avoir la commodité ou une authentification plus sécurisée (en parlant d'accès aux services sécurisés) intégrée.

Installez le package «cyrus-sasl *

[[email protected]]# yum -y install  cyrus-sasl 
Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
 * base: repos.forethought.net 
 * extras: repos.dfw.quadranet.com 
 * updates: mirrors.tummy.com 
Package cyrus-sasl-2.1.26-20.el7_2.x86_64 already installed and latest version
Nothing to do

Configurer /etc/postfix/main.cf pour SASL Auth

smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

Mes options SASL dans main.conf

##Configure SASL Options Entries:
smtpd_sasl_auth_enable = yes
smptd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtp_sasl_type = dovecot
smtp_sasl_path = private/auth/etc

Step 4 - Configurez FirewallD pour autoriser les services SMTP entrants.

[[email protected]]# firewall-cmd --permanent --add-service=smtp 
success

[[email protected]]# firewall-cmd --reload 
success

[[email protected]]#

Maintenant, vérifions pour nous assurer que notre hôte CentOS autorise et répond aux demandes sur le port 25 (SMTP).

Nmap scan report for 172.16.223.132 
Host is up (0.00035s latency). 
Not shown: 993 filtered ports 
PORT    STATE  SERVICE 
   20/tcp  closed ftp-data 
   21/tcp  open   ftp 
   22/tcp  open   ssh 
   25/tcp  open   smtp 
   80/tcp  open   http 
   389/tcp open   ldap 
   443/tcp open   https 
MAC Address: 00:0C:29:BE:DF:5F (VMware)

Comme vous pouvez le voir, SMTP écoute et le démon répond aux demandes de notre LAN interne.

Installez Dovecot IMAP et POP3 Server

Dovecot est un serveur IMAP et POP3 sécurisé conçu pour gérer les besoins de courrier entrant d'une organisation plus petite à plus grande. En raison de son utilisation prolifique avec CentOS, nous utiliserons Dovecot comme exemple d'installation et de configuration d'un serveur de messagerie entrant pour CentOS et MTA SASL Provider.

Comme indiqué précédemment, nous ne configurerons pas les enregistrements MX pour DNS ni ne créerons de règles sécurisées permettant à nos services de gérer le courrier d'un domaine. Par conséquent, la simple configuration de ces services sur un hôte faisant face à Internet peut laisser une marge de manœuvre pour des failles de sécurité sans enregistrements SPF.

Step 1 - Installez Dovecot.

[[email protected]]# yum -y install dovecot

Step 2 - Configurer le pigeonnier.

Le fichier de configuration principal de dovecot se trouve dans: /etc/dovecot.conf . Nous allons d'abord sauvegarder le fichier de configuration principal. Il est recommandé de toujours sauvegarder les fichiers de configuration avant d'effectuer des modifications. De cette façon, les sauts de ligne id (par exemple) sont détruits par un éditeur de texte, et des années de modifications sont perdues. La restauration est simple comme la copie de la sauvegarde actuelle en production.

Activer les protocoles et le service démon pour dovecot

# Protocols we want to be serving. 
protocols = imap imaps pop3 pop3s

Maintenant, nous devons activer le démon dovecot pour écouter au démarrage -

[[email protected]]# systemctl start  dovecot 
[[email protected]]# systemctl enable dovecot

Assurons-nous que Dovecot écoute localement sur les ports spécifiés pour: imap, pop3, imap secure et pop3 secure.

[[email protected]]# netstat -antup | grep dovecot 
 tcp        0        0 0.0.0.0:110        0.0.0.0:*        LISTEN        4368/dovecot
 tcp        0        0 0.0.0.0:143        0.0.0.0:*        LISTEN        4368/dovecot
 tcp        0        0 0.0.0.0:993        0.0.0.0:*        LISTEN        4368/dovecot
 tcp        0        0 0.0.0.0:995        0.0.0.0:*        LISTEN        4368/dovecot
 tcp6       0        0 :::110                :::*          LISTEN        4368/dovecot
 tcp6       0        0 :::143                :::*          LISTEN        4368/dovecot
 tcp6       0        0 :::993                :::*          LISTEN        4368/dovecot
 tcp6       0        0 :::995                :::*          LISTEN        4368/dovecot

[[email protected]]#

Comme on le voit, dovecot écoute sur les ports spécifiés pour IPv4 et IPv4.

POP3 110
POP3 995
IMAP 143
IMAP 993

Maintenant, nous devons établir des règles de pare-feu.

[[email protected]]# firewall-cmd --permanent --add-port=110/tcp 
success
 
[[email protected]]# firewall-cmd --permanent --add-port=143/tcp 
success
 
[[email protected]]# firewall-cmd --permanent --add-port=995/tcp 
success
 
[[email protected]]# firewall-cmd --permanent --add-port=993/tcp 
success
 
[[email protected]]# firewall-cmd --reload 
success
 
[[email protected]]#

Notre sever de courrier entrant accepte les demandes de POP3 , POP3s , IMAP et IMAP aux hôtes sur le réseau local.

Port Scanning host: 192.168.1.143

   Open TCP Port:   21          ftp 
   Open TCP Port:   22          ssh 
   Open TCP Port:   25          smtp 
   Open TCP Port:   80          http 
   Open TCP Port:   110         pop3 
   Open TCP Port:   143         imap 
   Open TCP Port:   443         https 
   Open TCP Port:   993         imaps 
   Open TCP Port:   995         pop3s