Instal·leu un servidor de correu complet amb Postfix i Webmail a Debian 9


Aquest tutorial us guiarà sobre com instal·lar i configurar un servidor de correu complet amb Postfix a la versió de Debian 9. També tractarà com configurar les bústies de correu dels comptes amb Dovecot per tal de recuperar i redactar correus mitjançant el protocol IMAP. Els usuaris utilitzaran la interfície de Rainloop Webmail com a agent d'usuari de correu per gestionar el correu.

  1. Instal·lació mínima de Debian 9
  2. Una adreça IP estàtica configurada per a la interfície de xarxa
  3. Un nom de domini registrat local o públic.

En aquest tutorial utilitzarem un compte de domini privat per a la configuració del servidor de correu configurat només mitjançant el fitxer /etc/hosts, sense cap servidor DNS implicat en la gestió de la resolució de DNS.

Pas 1: Configuracions inicials per al servidor de correu Postfix a Debian

1. En el primer pas, inicieu sessió a la vostra màquina amb un compte amb privilegis root o directament amb l'usuari root i assegureu-vos que el vostre sistema Debian estigui actualitzat amb els darrers pedaços de seguretat i les versions de programari i paquets, emetent l'ordre següent.

# apt-get update 
# apt-get upgrade 

2. Al següent pas, instal·leu els següents paquets de programari que s'utilitzaran per a l'administració del sistema, emetent l'ordre següent.

# apt-get install curl net-tools bash-completion wget lsof nano

3. A continuació, obriu el fitxer /etc/host.conf per editar-lo amb el vostre editor de text preferit i afegiu la línia següent al començament del fitxer per tal que la resolució DNS llegeix primer el fitxer hosts.

order hosts,bind
multi on

4. A continuació, configureu la vostra màquina FQDN i afegiu el vostre nom de domini i el vostre sistema FQDN al fitxer /etc/hosts. Utilitzeu l'adreça IP del vostre sistema per resoldre el nom del domini i el FQDN tal com es mostra a la captura de pantalla següent.

Substituïu l'adreça IP i el domini en conseqüència. Després, reinicieu la màquina per aplicar el nom d'amfitrió correctament.

# hostnamectl set-hostname mail.linux-console.net
# echo "192.168.0.102 linux-console.net mail.linux-console.net" >> /etc/hosts
# init 6

5. Després de reiniciar, comproveu si el nom d'amfitrió s'ha configurat correctament emetent la següent sèrie d'ordres. El nom de domini, el FQDN, el nom d'amfitrió i l'adreça IP del sistema s'han de retornar mitjançant l'ordre de nom d'amfitrió.

# hostname
# hostname -s
# hostname -f
# hostname -A
# hostname -i
# cat /etc/hostname 

6. A més, comproveu si el domini respon correctament a les consultes locals emetent les ordres següents. Tingueu en compte que el domini no es reproduirà a les consultes remotes emeses per altres sistemes de la vostra xarxa, perquè no estem utilitzant un servidor DNS.

Tanmateix, el domini hauria de respondre des d'altres sistemes si afegiu manualment el nom de domini a cadascun dels seus fitxers /etc/hosts. A més, tingueu en compte que la resolució DNS d'un domini afegit al fitxer /etc/hosts no funcionarà mitjançant ordres d'excavació.

# getent ahosts mail.linux-console.net
# ping linux-console.net
# ping mail.linux-console.net

Pas 2: instal·leu el servidor de correu Postfix a Debian

7. La peça de programari més important necessària perquè un servidor de correu funcioni correctament és l'agent MTA. El MTA és un programari construït en una arquitectura servidor-client, que és responsable de la transferència de correu entre servidors de correu.

En aquesta guia utilitzarem Postfix com a agent de transferència de correu. Per instal·lar postfix a Debian des dels dipòsits oficials, executeu l'ordre següent.

# apt-get install postfix

8. Durant el procés d'instal·lació de Postfix se us farà una sèrie de preguntes. A la primera sol·licitud, seleccioneu l'opció Lloc d'Internet com a tipus general per a la configuració de Postfix i premeu la tecla [Enter] per continuar i, a continuació, afegiu el vostre nom de domini al nom de correu del sistema, tal com es mostra a les captures de pantalla següents.

Pas 3: configureu el servidor de correu Postfix a Debian

9. A continuació, feu una còpia de seguretat del fitxer de configuració principal de Postfix i configureu Postfix per al vostre domini mitjançant les ordres següents.

# cp /etc/postfix/main.cf{,.backup}
# nano /etc/postfix/main.cf

Ara configureu la configuració de Postfix al fitxer main.cf tal com es mostra.

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.debian.lan

mydomain = debian.lan

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

#myorigin = /etc/mailname
myorigin = $mydomain

mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#inet_protocols = all
inet_protocols = ipv4

home_mailbox = Maildir/

# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Substituïu les variables myhostname, mydomain i mynetworks perquè coincideixin amb les vostres pròpies configuracions.

Podeu executar l'ordre postconf -n per tal d'abocar el fitxer de configuració principal de Postfix i comprovar possibles errors, tal com es mostra a la captura de pantalla següent.

# postconf -n

10. Quan totes les configuracions estiguin al seu lloc, reinicieu el dimoni Postfix per aplicar els canvis i verificar si el servei s'està executant inspeccionant si el servei mestre Postfix s'enllaça al port 25 executant l'ordre netstat.

# systemctl restart postfix
# systemctl status postfix
# netstat -tlpn

Pas 3: prova el servidor de correu Postfix a Debian

11. Per comprovar si el postfix pot gestionar la transferència de correu, primer instal·leu el paquet mailutils executant l'ordre següent.

# apt-get install mailutils

12. A continuació, utilitzant la utilitat de línia d'ordres de correu, envieu un correu al compte arrel i comproveu si el correu s'ha transmès correctament emetent l'ordre següent per comprovar la cua de correu i enumerar el contingut del directori Maildir inicial de l'arrel.

# echo "mail body"| mail -s "test mail" root
# mailq
# mail
# ls Maildir/
# ls Maildir/new/
# cat Maildir/new/[TAB]

13. També podeu verificar de quina manera el servei de postfix va gestionar el correu inspeccionant el contingut del fitxer de registre de correu emetent l'ordre següent.

# tailf /var/log/mail.log

Pas 4: instal·leu i configureu Dovecot IMAP a Debian

14. L'agent de lliurament de correu que utilitzarem en aquesta guia per enviar missatges de correu electrònic a les bústies de correu d'un destinatari local és Dovecot IMAP. IMAP és un protocol que s'executa als ports 143 i 993 (SSL), que és responsable de llegir, suprimir o moure correus entre diversos clients de correu electrònic.

El protocol IMAP també utilitza la sincronització per assegurar-se que una còpia de cada missatge es desa al servidor i permet als usuaris crear diversos directoris al servidor i moure correus a aquests directoris per ordenar els correus electrònics.

Aquest no és el cas del protocol POP3. El protocol POP3 no permetrà als usuaris crear diversos directoris al servidor per ordenar el vostre correu. Només tens la carpeta de la safata d'entrada per gestionar el correu.

Per instal·lar el servidor principal Dovecot i el paquet IMAP Dovecot a Debian, executeu l'ordre següent.

# apt install dovecot-core dovecot-imapd

15. Després d'haver instal·lat Dovecot al vostre sistema, obriu els fitxers de dovecot següents per editar-los i feu els canvis següents. Primer, obriu el fitxer /etc/dovecot/dovecot.conf, cerqueu i descomenteu la línia següent:

listen = *, ::

16. A continuació, obriu /etc/dovecot/conf.d/10-auth.conf per editar-lo i localitzeu i canvieu les línies de sota perquè es vegin com en l'extracte següent.

disable_plaintext_auth = no
auth_mechanisms = plain login

17. Obriu el fitxer /etc/dovecot/conf.d/10-mail.conf i afegiu la línia següent per utilitzar la ubicació de Maildir en lloc del format Mbox per emmagatzemar correus electrònics.

mail_location = maildir:~/Maildir

18. L'últim fitxer a editar és /etc/dovecot/conf.d/10-master.conf. Aquí cerqueu el bloc smtp-auth de Postfix i feu el canvi següent:

# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0666
  user = postfix
  group = postfix
 }

19. Després d'haver fet tots els canvis anteriors, reinicieu el dimoni Dovecot per reflectir els canvis, comproveu-ne l'estat i comproveu si Dovecot s'enllaça al port 143, emetent les ordres següents.

# systemctl restart dovecot.service 
# systemctl status dovecot.service 
# netstat -tlpn

20. Comproveu si el servidor de correu s'executa correctament afegint un nou compte d'usuari al sistema i utilitzeu l'ordre telnet o netcat per connectar-vos al servidor SMTP i enviar un correu nou al nou usuari afegit, tal com s'il·lustra als fragments següents.

# adduser matie
# nc localhost 25
# ehlo localhost
mail from: root
rcpt to: matie
data
subject: test
Mail body
.
quit

21. Comproveu si el correu ha arribat a la bústia de correu de l'usuari nou enumerant el contingut del directori d'inici de l'usuari tal com es mostra a la captura de pantalla següent.

# ls /home/test_mail/Maildir/new/

22. A més, podeu connectar-vos a la bústia de correu de l'usuari des de la línia d'ordres mitjançant el protocol IMAP, tal com es mostra a l'extracte següent. El correu nou hauria d'estar llistat a la safata d'entrada de l'usuari.

# nc localhost 143
x1 LOGIN matie user_password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT

Pas 5: instal·leu i configureu el correu web a Debian

23. Els usuaris gestionaran els seus correus electrònics mitjançant el client Rainloop Webmail. Abans d'instal·lar l'agent d'usuari de correu Rainloop, primer instal·leu el servidor HTTP Apache i els següents mòduls PHP requerits per Rainloop, emetent l'ordre següent.

# apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-xml

24. Un cop instal·lat el servidor web Apache, canvieu el camí del directori al directori /var/www/html/, elimineu el fitxer index.html i emeteu l'ordre següent per instal·lar Rainloop Webmail.

# cd /var/www/html/
# rm index.html 
# curl -sL https://repository.rainloop.net/installer.php | php

25. Un cop instal·lat el client Rainloop Webmail al sistema, navegueu a l'adreça IP del vostre domini i inicieu sessió a la interfície web d'administració de Rainloop amb les credencials predeterminades següents:

http://192.168.0.102/?admin
User: admin
Password: 12345

26. Navegueu al menú Dominis, premeu el botó Afegeix un domini i afegiu la configuració del vostre nom de domini tal com es mostra a la captura de pantalla següent.

27. Quan hàgiu acabat d'afegir la configuració del vostre domini, tanqueu la sessió des de la interfície d'administració de Ranloop i apunteu el navegador a la vostra adreça IP per iniciar sessió al client de correu web amb un compte de correu electrònic.

Després d'haver iniciat sessió correctament al correu web de Rainloop, hauríeu de veure el correu electrònic enviat anteriorment des de la línia d'ordres a la carpeta de la safata d'entrada.

http://192.168.0.102
User: [email 
Pass: the matie password

27. Per afegir un usuari nou, emet l'ordre useradd amb el senyalador -m per tal de crear el directori inicial de l'usuari. Però, primer assegureu-vos de configurar la variable de ruta de Maildir per a cada usuari amb l'ordre següent.

# echo 'export MAIL=$HOME/Maildir' >> /etc/profile
# useradd -m user3
# passwd user3

28. Si voleu redirigir tot el correu electrònic de root a un compte de correu local específic del sistema, executeu les ordres següents. Tots els correus redirigits o destinats al compte root es reenviaran al vostre usuari de correu tal com es mostra a la imatge següent.

# echo "root: test_mail" >> /etc/aliases
# newaliases

Això és tot! Heu instal·lat i configurat correctament un servidor de correu a les vostres instal·lacions per tal que els usuaris locals es comuniquin mitjançant correus electrònics. No obstant això, aquest tipus de configuració de correu no està assegurada de cap manera i és recomanable que només es desplega per a petites configuracions en sistemes i xarxes sota el vostre total control.