Instale un servidor de correo completo con Postfix y Webmail en Debian 9


Este tutorial lo guiará sobre cómo instalar y configurar un servidor de correo completo con Postfix en Debian 9 release. También cubrirá cómo configurar los buzones de correo de las cuentas utilizando Dovecot para recuperar y redactar correos electrónicos a través del protocolo IMAP . Los usuarios utilizarán la interfaz Rainloop Webmail como agente de usuario de correo para gestionar el correo.

  1. Debian 9 Minimal Installation
  2. A static IP address configured for the network interface
  3. A local or a public registered domain name.

En este tutorial usaremos una cuenta de dominio privado para la configuración del servidor de correo configurada a través del archivo /etc/hosts , sin ningún servidor DNS involucrado en el manejo de la resolución del DNS.

Paso 1: Configuraciones iniciales para el servidor de correo Postfix en Debian

1. En el primer paso, inicie sesión en su máquina con una cuenta con privilegios de root o directamente con el usuario root y asegúrese de que su sistema Debian esté actualizado con los últimos parches de seguridad y versiones de software y paquetes. , emitiendo el siguiente comando.

# apt-get update 
# apt-get upgrade 

2. En el siguiente paso, instale los siguientes paquetes de software que se utilizarán para la administración del sistema, emitiendo el siguiente comando.

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

3. A continuación, abra el archivo /etc/host.conf para editarlo con su editor de texto favorito y agregue la siguiente línea al principio del archivo para que la resolución del DNS lee el archivo hosts primero.

order hosts,bind
multi on

4. A continuación, configure su máquina FQDN y agregue su nombre de dominio y el FQDN de su sistema al archivo /etc/hosts . Use la dirección IP de su sistema para resolver el nombre del dominio y el FQDN como se ilustra en la siguiente captura de pantalla.

Reemplace la dirección IP y el dominio en consecuencia. Después, reinicie la máquina para aplicar el nombre de host correctamente.

# hostnamectl set-hostname mail.tecmint.com
# echo "192.168.0.102 tecmint.com mail.tecmint.com" >> /etc/hosts
# init 6

5. Después de reiniciar, verifique si nombre de host se ha configurado correctamente emitiendo la siguiente serie de comandos. El comando de nombre de host debe devolver el nombre de dominio, el FQDN, el nombre de host y la dirección IP del sistema.

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

6. También, compruebe si el dominio responde correctamente a las consultas locales emitiendo los siguientes comandos. Tenga en cuenta que el dominio no se reproducirá a consultas remotas emitidas por otros sistemas en su red, porque no estamos utilizando un servidor DNS.

Sin embargo, el dominio debe responder desde otros sistemas si agrega manualmente el nombre de dominio a cada uno de sus archivos /etc/hosts . Además, tenga en cuenta que la resolución de DNS para un dominio agregado a /etc/hosts no funcionará mediante los comandos host, nslookup o dig.

# getent ahosts mail.tecmint.com
# ping tecmint.com
# ping mail.tecmint.com

Paso 2: Instalar el servidor de correo Postfix en Debian

7. La parte más importante del software requerido para que un servidor de correo funcione correctamente es el agente de MTA . El MTA es un software construido en una arquitectura de servidor-cliente, que es responsable de la transferencia de correo entre los servidores de correo.

En esta guía usaremos Postfix como agente de transferencia de correo. Para instalar postfix en Debian desde repositorios oficiales ejecute el siguiente comando.

# apt-get install postfix

8. Durante el proceso de instalación de Postfix se te harán una serie de preguntas. En la primera solicitud, seleccione la opción Sitio de Internet como el tipo general para la configuración de Postfix y presione la tecla [ingresar] para continuar y luego agregue su nombre de dominio al nombre de correo del sistema, como Ilustrado en las siguientes capturas de pantalla.

Paso 3: Configurar el servidor de correo Postfix en Debian

9. A continuación, realice una copia de seguridad del archivo de configuración principal de Postfix y configure Postfix para su dominio mediante los siguientes comandos.

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

Ahora configure la configuración de Postfix en el archivo main.cf como se muestra.

# 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

Reemplace las variables myhostname , mydomain y mynetworks para que coincidan con sus propias configuraciones.

Puede ejecutar el comando postconf -n para volcar el archivo de configuración principal de Postfix y verificar los posibles errores, como se muestra en la siguiente captura de pantalla.

# postconf -n

10. Después de que todas las configuraciones estén en su lugar, reinicie el daemon de Postfix para aplicar los cambios y verifique si el servicio se está ejecutando, inspeccionando si el servicio maestro de Postfix está enlazando el puerto 25 ejecutando netstat mando.

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

Paso 3: Probar el servidor de correo Postfix en Debian

11. Para probar si Postfix puede manejar la transferencia de correo, primero instale el paquete mailutils ejecutando el siguiente comando.

# apt-get install mailutils

12. A continuación, use la utilidad de línea de comandos de correo, envíe un correo a la cuenta raíz y verifique si el correo se transmitió correctamente emitiendo el siguiente comando para verificar la cola de correo y listar el contenido de la raíz. Directorio de inicio de Maildir.

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

13. También puede verificar de qué manera el correo fue manejado por el servicio de postfix inspeccionando el contenido del archivo de registro de correo emitiendo el siguiente comando.

# tailf /var/log/mail.log

Paso 4: Instale y configure Dovecot IMAP en Debian

14. El agente de entrega de correo que usaremos en esta guía para enviar mensajes de correo electrónico a los buzones de un destinatario local es Dovecot IMAP . IMAP es un protocolo que se ejecuta en los puertos 143 y 993 ( SSL ), que es responsable de leer, eliminar o moviendo correos a través de múltiples clientes de correo.

El protocolo IMAP también utiliza la sincronización para garantizar que se guarde una copia de cada mensaje en el servidor y permite a los usuarios crear múltiples directorios en el servidor y mover los correos a estos directorios para ordenar los correos electrónicos.

Este no es el caso con el protocolo POP3 . El protocolo POP3 no permitirá a los usuarios crear múltiples directorios en el servidor para ordenar su correo. Solo tienes la carpeta de la bandeja de entrada para administrar el correo.

Para instalar el servidor central Dovecot y el paquete Dovecot IMAP en Debian, ejecute el siguiente comando.

# apt install dovecot-core dovecot-imapd

15. Una vez que se haya instalado Dovecot en su sistema, abra los siguientes archivos de dovecot para editarlos y realice los cambios siguientes. Primero, abra el archivo /etc/dovecot/dovecot.conf , busque y descomente la siguiente línea:

listen = *, ::

16. A continuación, abra /etc/dovecot/conf.d/10-auth.conf para editar, busque y cambie las líneas de abajo para que aparezcan en el extracto de abajo.

disable_plaintext_auth = no
auth_mechanisms = plain login

17. Abra el archivo /etc/dovecot/conf.d/10-mail.conf y agregue la siguiente línea para usar la ubicación de Maildir en lugar de Formato Mbox para almacenar correos electrónicos.

mail_location = maildir:~/Maildir

18. El último archivo a editar es /etc/dovecot/conf.d/10-master.conf . Aquí busque el bloque Postfix smtp-auth y realice el siguiente cambio:

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

19. Después de haber realizado todos los cambios anteriores, reinicie el daemon Dovecot para reflejar los cambios, verifique su estado y verifique si Dovecot está enlazando el puerto 143 , emitiendo los siguientes comandos.

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

20. Pruebe si el servidor de correo se está ejecutando correctamente agregando una nueva cuenta de usuario al sistema y use telnet o netcat para conectarse a la Servidor SMTP y envíe un nuevo correo al nuevo usuario agregado, como se ilustra en los extractos a continuación.

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

21. Verifique si el correo ha llegado al buzón del nuevo usuario enumerando el contenido del directorio de inicio del usuario como se muestra en la siguiente captura de pantalla.

# ls /home/test_mail/Maildir/new/

22. También puede conectarse al buzón del usuario desde la línea de comandos a través del protocolo IMAP, como se muestra en el extracto a continuación. El nuevo correo debe aparecer en la bandeja de entrada del usuario.

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

Paso 5: Instalar y configurar Webmail en Debian

23. Los usuarios gestionarán sus correos electrónicos a través del cliente Rainloop Webmail . Antes de instalar el agente de usuario de correo de Rainloop, primero instale el servidor Apache HTTP y los siguientes módulos PHP requeridos por Rainloop, emitiendo el siguiente comando.

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

24. Después de que se haya instalado el servidor web Apache, cambie la ruta del directorio a /var/www/html/, elimine el archivo index.html y ejecute el siguiente comando para instalar Rainloop Webmail.

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

25. Una vez que el cliente Rainloop Webmail se haya instalado en el sistema, navegue hasta la dirección IP de su dominio e inicie sesión en la interfaz web de administración de Rainloop con las siguientes credenciales predeterminadas:

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

26. Navegue al menú Dominios , presione el botón Agregar dominio y agregue la configuración de su nombre de dominio como se muestra en la siguiente captura de pantalla.

27. Una vez que haya terminado de agregar la configuración de su dominio, cierre sesión en la interfaz de administración de Ranloop y dirija el navegador a su dirección IP para iniciar sesión en el cliente de correo web con una cuenta de correo electrónico.

Una vez que haya iniciado sesión correctamente en el correo web de Rainloop, debería ver el correo electrónico enviado anteriormente desde la línea de comandos a su carpeta Bandeja de entrada.

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

27. Para agregar un nuevo usuario, ejecute el comando useradd con el indicador -m para crear el directorio de inicio del usuario. Pero primero asegúrese de configurar la variable de ruta de Maildir para cada usuario con el siguiente comando.

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

28. Si desea redireccionar todo el correo electrónico de la raíz a una cuenta de correo local específica desde el sistema, ejecute los siguientes comandos. Todos los correos redirigidos o destinados a una cuenta raíz se reenviarán a su usuario de correo como se muestra en la imagen de abajo.

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

¡Eso es todo! Ha instalado y configurado con éxito un servidor de correo en sus instalaciones para que los usuarios locales se comuniquen por correo electrónico. Sin embargo, este tipo de configuración de correo no está asegurado de ninguna manera y es recomendable que se implemente solo para configuraciones pequeñas en sistemas y redes bajo su control total.