Configurare Postfix MTA e IMAP / POP3

Per inviare un'e-mail dal nostro server CentOS 7, avremo bisogno della configurazione per configurare un moderno Mail Transfer Agent (MTA). Mail Transfer Agent è il daemon responsabile dell'invio della posta in uscita per utenti di sistema o domini Internet aziendali tramite SMTP.

Vale la pena notare che questo tutorial insegna solo il processo di configurazione del demone per l'uso locale. Non entriamo nei dettagli sulla configurazione avanzata per l'impostazione di un MTA per le operazioni aziendali. Questa è una combinazione di molte abilità, tra cui ma non solo: DNS, ottenere un indirizzo IP instradabile statico che non è nella lista nera e configurare impostazioni avanzate di sicurezza e servizio. In breve, questo tutorial ha lo scopo di familiarizzare con la configurazione di base. Non utilizzare questo tutorial per la configurazione MTA di un host con connessione a Internet.

Con la sua attenzione combinata sia alla sicurezza che alla facilità di amministrazione, abbiamo scelto Postfixcome MTA per questo tutorial. L'MTA predefinito installato nelle versioni precedenti di CentOS è Sendmail .Sendmailè un ottimo MTA. Tuttavia, dell'umile parere dell'autore, Postfix colpisce un punto debole quando affronta le seguenti note per un MTA. Con la versione più recente di CentOS, Postfix ha sostituito Sendmail come MTA predefinito.

Postfix è un MTA ampiamente utilizzato e ben documentato. Viene mantenuto e sviluppato attivamente. Richiede una configurazione minima in mente (questa è solo posta elettronica) ed è efficiente con le risorse di sistema (di nuovo, questa è solo posta elettronica).

Step 1 - Installa Postfix da YUM Package Manager.

[root@centos]# yum -y install postfix

Step 2 - Configura il file di configurazione di Postfix.

Il file di configurazione di Postfix si trova in: /etc/postfix/main.cf

In una semplice configurazione Postfix, è necessario configurare quanto segue per un host specifico: nome host, dominio, origine, inet_interfaces e destinazione.

Configure the hostname- Il nome host è un nome di dominio completo dell'host Postfix. Nel capitolo OpenLDAP, abbiamo chiamato la casella CentOS: centos nel dominio vmnet.local . Continuiamo con quello per questo capitolo.

# 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- Come indicato sopra, il dominio che useremo in questo tutorial è 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 - Per la configurazione di un singolo server e dominio, è sufficiente rimuovere il commento dalle sezioni seguenti e lasciare le variabili Postfix predefinite.

# 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- Lasceremo Postfix in ascolto sulla nostra singola interfaccia di rete e su tutti i protocolli e gli indirizzi IP associati a tale interfaccia. Questo viene fatto semplicemente lasciando le impostazioni predefinite abilitate per 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 user@[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 - Configurare il supporto SASL per Postfix.

Senza il supporto dell'autenticazione SASL, Postfix consentirà solo l'invio di e-mail da utenti locali. Oppure darà un errore di inoltro negato quando gli utenti inviano messaggi di posta elettronica dal dominio locale.

Note - SASL o Simple Application Security Layer Frameworkè un framework progettato per l'autenticazione che supporta diverse tecniche tra i diversi protocolli di Application Layer. Invece di lasciare i meccanismi di autenticazione al protocollo del livello dell'applicazione, gli sviluppatori SASL (e i consumatori) sfruttano i protocolli di autenticazione correnti per i protocolli di livello superiore che potrebbero non avere la comodità o un'autenticazione più sicura (quando si parla di accesso a servizi protetti) incorporata.

Installa il pacchetto "cyrus-sasl *

[root@centos]# 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

Configurare /etc/postfix/main.cf per 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

Le mie opzioni SASL in 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 - Configurare FirewallD per consentire i servizi SMTP in entrata.

[root@centos]# firewall-cmd --permanent --add-service=smtp 
success

[root@centos]# firewall-cmd --reload 
success

[root@centos]#

Ora controlliamo per assicurarci che il nostro host CentOS consenta e risponda alle richieste sulla porta 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)

Come puoi vedere, SMTP è in ascolto e il demone risponde alle richieste dalla nostra LAN interna.

Installa Dovecot IMAP e POP3 Server

Dovecot è un server IMAP e POP3 sicuro progettato per gestire le esigenze di posta in arrivo di un'organizzazione più piccola o più grande. A causa del suo utilizzo prolifico con CentOS, utilizzeremo Dovecot come esempio di installazione e configurazione di un server di posta in arrivo per CentOS e MTA SASL Provider.

Come notato in precedenza, non configureremo i record MX per DNS né creeremo regole sicure che consentano ai nostri servizi di gestire la posta per un dominio. Pertanto, la semplice configurazione di questi servizi su un host con accesso a Internet può lasciare spazio a falle di sicurezza senza record SPF.

Step 1 - Installa Dovecot.

[root@centos]# yum -y install dovecot

Step 2 - Configura dovecot.

Il file di configurazione principale per dovecot si trova in: /etc/dovecot.conf . Effettueremo prima il backup del file di configurazione principale. È buona norma eseguire sempre il backup dei file di configurazione prima di apportare modifiche. In questo modo le interruzioni di riga dell'ID (ad esempio) vengono distrutte da un editor di testo e si perdono anni di modifiche. Il ripristino è facile come copiare il backup corrente in produzione.

Abilita i protocolli e il servizio daemon per dovecot

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

Ora, dobbiamo abilitare il demone dovecot ad ascoltare all'avvio -

[root@localhost]# systemctl start  dovecot 
[root@localhost]# systemctl enable dovecot

Assicuriamoci che Dovecot stia ascoltando localmente sulle porte specificate per: imap, pop3, imap secured e pop3 secured.

[root@localhost]# 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

[root@localhost]#

Come visto, dovecot è in ascolto sulle porte specificate per IPv4 e IPv4.

POP3 110
POP3 995
IMAP 143
IMAP 993

Ora, dobbiamo creare alcune regole del firewall.

[root@localhost]# firewall-cmd --permanent --add-port=110/tcp 
success
 
[root@localhost]# firewall-cmd --permanent --add-port=143/tcp 
success
 
[root@localhost]# firewall-cmd --permanent --add-port=995/tcp 
success
 
[root@localhost]# firewall-cmd --permanent --add-port=993/tcp 
success
 
[root@localhost]# firewall-cmd --reload 
success
 
[root@localhost]#

La nostra posta elettronica in entrata sever sta accettando le richieste di POP3 , POP3s , IMAP , e IMAPs a host sulla LAN.

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