GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar un servidor de correo electrónico con ISPConfig en Debian 10

Este tutorial utiliza una configuración de un solo servidor como ejemplo. ISPConfig 3.1 está instalado en Debian 10.0, Buster (consulte el tutorial de instalación de ISPConfig Perfect Server para la instalación real del servidor), el propósito de esta guía es mostrarle los pasos después de haber instalado el servidor inicial para configurar un sistema de correo que funcione por su cuenta. nombre de dominio. Actualicé ISPConfig a 3.1.15 durante la prueba de este tutorial.

Lo que se necesita

Para usar este tutorial con éxito para un servidor de correo electrónico que funcione correctamente, necesita

  • un host donde instala ISPConfig (y un sistema operativo)
  • Recomiendo 2 GB de memoria con 4 GB de intercambio, debería ser suficiente para el servidor de correo.
  • el host debe tener conexión a Internet con el puerto 25 abierto en ambos sentidos
  • el host tiene una dirección IP fija
  • el host debe tener un registro A para su dirección IP (o AAAA si usa IPv6)
  • debe crear un registro MX para el servicio de nombres DNS para el host
  • debe obtener un registro PTR del servicio de nombres de DNS inverso del host que coincida con el FQDN de los hosts

El requisito de memoria es para los filtros de SPAM. Puede arreglárselas con 1 GB de memoria incluso con filtros de SPAM en ejecución si el intercambio de 4 GB está ahí para evitar situaciones de falta de memoria.

Puertos abiertos

El servidor de correo debe tener abierto el puerto 25 tanto de entrada como de salida. Asegúrese de que su host tenga ese puerto abierto antes de configurar el servidor de correo electrónico en ese host.

Hay formas de hacer que el correo electrónico funcione incluso cuando el puerto 25 no está abierto, pero implica enviar correos electrónicos a través de otro host que tener el puerto 25 abierto. Puede tener más sentido instalar un servidor de correo electrónico en ese otro host y olvidarse del primero por completo en lo que respecta al correo electrónico.

Entradas del servicio de nombres DNS

El servidor de correo necesita un FQDN, un nombre de dominio totalmente calificado (lea sobre esto en Wikipedia:FQDN). En este ejemplo, el nombre de dominio es taleman.ovh . Para mostrar que el nombre de host del servidor de correo no necesita ser correo, usamos posti como nombre de host. Entonces el FQDN es posti.taleman.ovh .

Este host está instalado en un sistema de proveedores de servicios, ofrecen registro de dominios, servicio de nombres y servicio de nombres inversos. Yo usé esos.

La dirección IP es 178.33.154.66. Hice lo siguiente:

  • registró el dominio taleman.ovh
  • añadió esta dirección IP como registro A al servicio de nombres DNS con el nombre posti.taleman.ovh
  • Registro MX agregado para el dominio taleman.ovh con valor posti.taleman.ovh
  • Se agregó un registro PTR de servicio de nombre inverso para esa dirección IP, apuntando a posti.taleman.ovh

El registro MX se crea para el dominio de correo electrónico. Así que lo creo para taleman.ovh, y apunta a posti.taleman.ovh, el servidor de correo electrónico que recibe correo electrónico para ese dominio.

Servicio de nombres inverso

Lea sobre el servicio de nombres inverso en el tutorial de servicio de nombres. En este caso de ejemplo, el servicio de nombres inversos debe devolver posti.taleman.ovh.

Mi proveedor de servicios verificó la existencia de un registro antes de que fuera posible agregar el PTR correspondiente, tuve un pequeño problema antes de darme cuenta de que esa era la razón por la que falló la adición.

Prueba de servicio de nombres

Es mejor probar el servicio de nombres ahora, ya que enviar y recibir correos electrónicos no funcionará si el servicio de nombres no está configurado correctamente. Si su estación de trabajo es Windows en lugar de Linux o Unix, use el comando nslookup en lugar de host.

$ host taleman.ovh
taleman.ovh has address 188.165.143.5
taleman.ovh mail is handled by 10 posti.taleman.ovh.

El resultado anterior muestra que el nombre de dominio tiene un número de IP asociado (que en este caso es diferente del número de IP del servidor de correo electrónico, pero eso no afecta los correos electrónicos), y hay un registro MX que apunta a posti.taleman.ovh. La parte "el correo es manejado por" proviene del registro MX. Este registro MX es necesario si el correo electrónico enviado a las direcciones @taleman.ovh se recibirá en posti.taleman.ovh.

Luego verifique que la entrada del servicio de nombres para el servidor de correo FQDN (en este caso, posti.taleman.fi) sea un registro A y apunte al número de IP correcto.

$ dig posti.taleman.ovh |grep "ANSWER SECTION" --after-context=3 
;; ANSWER SECTION:
posti.taleman.ovh. 3600 IN A 178.33.154.66
;; Query time: 56 msec

Finalmente, verifique que el servicio de nombre inverso resuelva el número de IP al FQDN del servidor de correo.

$ host 178.33.154.66
66.154.33.178.in-addr.arpa domain name pointer posti.taleman.ovh.

En lugar de los comandos host y dig, puede usar páginas web que prueben el servicio de nombres. Conozco intoDNS y MXToolbox.

Si no puede hacer que las pruebas anteriores tengan éxito, puede probar este tutorial de configuración del servicio de nombres.

Instalación del sistema operativo

Uso Debian versión 10 Buster, así que sigo este tutorial:

https://www.howtoforge.com/tutorial/debian-10-buster-minimal-server/

Reemplace el número de IP, el nombre de host y el nombre de dominio con sus valores.

Dado que escribo este tutorial en inglés, elegí inglés como idioma, pero Finlandia como país y United_Kingdom en_GB.UTF-8 como configuración regional.

[email protected]:/tmp# cat /etc/debian_version 10.0
[email protected]:~# locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=
[email protected]:~# cat /etc/timezone
Europe/Helsinki

Verifique que haya configurado correctamente el nombre de host. La configuración del sistema de correo que hace ISPConfig no funcionará si el nombre de host es incorrecto.

[email protected]:~# hostname posti
[email protected]:~# hostname -f posti.taleman.ovh
[email protected]:~#

Instalando ISPConfig

Elijo instalar Apache como servidor web, así que para Debian Buster sigo esta Perfect Server Guide.

Instalé el servidor openssh en el host y configuré el inicio de sesión raíz usando la clave ssh, por lo que puedo acceder directamente al host como root. Inicios de sesión sin contraseña con OpenSSH o inicios de sesión seguros sin contraseña con SSH.

[email protected]:/tmp# free -h

Prefiero los editores de estilo Emacs a nano, así que instalo jed ahora para que la edición de archivos sea más agradable.

Tenía /etc/host y /etc/hostname configurados correctamente después de la instalación del sistema operativo, así que verifiqué que eran correctos siguiendo la Guía Perfect Server. Preste atención al nombre de host y FQDN, si los estropea descubrirá al final que su servidor de correo electrónico no funciona. El daño se puede reparar, pero es más fácil corregirlo desde el principio.

[email protected]:/tmp# hostname
posti
[email protected]:/tmp# hostname -f
posti.taleman.ovh

Por lo demás, solo sigo la Guía Perfect Server. Tenga en cuenta que en su mayoría puede cortar y pegar los comandos de la guía a la línea de comandos.

No instalé Mailman, no planeo usar Mailman en este host. Asimismo, omití instalar BIND DNS Server, Webalizer, AWStats. Instalé Roundcube Webmail ya que este host se convierte en un servidor de correo electrónico.

En el capítulo 18 (Instalar la herramienta de administración de la base de datos PHPMyAdmin) usé el comando

/usr/bin/apg -m 32 -x 32

para generar el secreto del pez globo de 32 caracteres.

Usando sistema

Crear dominio de correo electrónico y buzones

Ahora inicio sesión como administrador en ISPConfig y

  • Añadir nuevo cliente
  • Agregue un nuevo dominio (¡Dominio de correo electrónico!) y complete el formulario
  • Añadir nuevo buzón

Cree las claves DKIM y registre haciendo clic en los botones en el orden numerado en la imagen. Puede leer sobre DKIM en Wikipedia.

Figura 1:Crear dominio de correo

Luego espere dos minutos o hasta que desaparezca la bola roja con número en la parte superior del Panel ISPConfig.

Como primera prueba, inicie sesión en Roundcube Webmail con el buzón creado anteriormente y envíe un correo electrónico a esa misma dirección. ISPConfig envía un mensaje de bienvenida a cada buzón creado, por lo que ya debería haber un mensaje allí. Utilice el botón Redactar y escriba un breve mensaje de prueba.

Figura 2:correo web de Roundcube

Figura 3:Envío desde Roundcube

El mensaje debería aparecer pronto en el buzón.

Entonces prueba enviando un e-mail a algún otro buzón que tengas y puedes comprobar si el correo llega allí. Próxima prueba que puede enviar desde otro lugar al buzón de correo creado anteriormente.

Tenga en cuenta que si habilitó la lista gris para el buzón, el correo electrónico enviado desde fuera de su servidor no llega inmediatamente al buzón. Sin embargo, debería ver las entradas de registro de correo del intento de entrega de inmediato para que vea que el correo puede llegar a su servidor. La entrada de lista gris en el archivo /var/log/mail.log se parece a esto:

Aug 29 19:08:42 posti postfix/smtpd[16911]: NOQUEUE: reject: 
  RCPT from mta-out1.inet.fi[62.71.2.194]: 450 4.2.0 
  <[email protected]>: Recipient address rejected: Greylisted, 
  see http://postgrey.schweikert.ch/help/taleman.ovh.html; 
  from=<****@*****.***> to=<[email protected]> proto=ESMTP 
  helo=<******.****.***>

Puede monitorear el registro de correo en una ventana de terminal como esta, por ejemplo:

tail -f /var/log/mail.log

O usando estos comandos, si solo está interesado en las entradas de la lista gris:

tail -f /var/log/mail.log | grep Greylisted

o

grep Greylisted /var/log/mail.log

La lista gris retrasa solo el primer correo electrónico del mismo remitente al mismo destinatario. Una vez que se recibe el primer correo electrónico, los siguientes correos electrónicos llegan sin demora adicional.

En mi caso, todo funcionó a la primera. Esto demuestra que la Guía Perfect Server de ISPConfig realmente funciona.

Conectar cliente de correo electrónico

Usando Thunderbird como cliente de correo de ejemplo. Otras aplicaciones de cliente de correo funcionan de manera similar.

ISPConfig hace que el nombre de la cuenta sea la dirección de correo electrónico.

Figura 4:Configuración de la cuenta de Thunderbird

Figura 5:Configuración del servidor Thunderbird

La seguridad de conexión STARTTLS significa que la conexión comienza sin protección y luego cambia a encriptada si ambas partes admiten la encriptación. SSL/TSL significa que la sesión está encriptada desde el principio. SSL/TSL probablemente sea un poco más seguro, así que pruebe si su cliente funciona con eso.

Figura 6:configuración del servidor de salida de Thunderbird

Usando SPF

Lea sobre el marco de políticas del remitente de Wikipedia. Originalmente, SPF significaba Sender Permitted From, lo cual es bueno recordar lo que significa. Después de leer sobre SPF, puede crear el registro usted mismo, verificar si su proveedor de servicios de nombres puede generar un registro SPF o usar motores de búsqueda de Internet con

SPF wizard

encuentre un sitio web que cree el registro de servicio de nombres SPF para usted. Luego corte y pegue el registro en su servicio de nombres. Agregue un registro TXT, o tal vez en algún sistema DNS agregue un registro SPF.

Compruebe cómo se ve el SPF en el servicio de nombres, así

$ dig taleman.ovh -t TXT | grep spf
taleman.ovh. 3000 IN TXT "v=spf1 mx ~all"

O así:

$ dig +short taleman.ovh TXT
"v=spf1 mx ~all"
"1|www.taleman.ovh"

Usando DKIM

Lea sobre DomainKeys Identified Mail de Wikipedia. ISPConfig creó las claves DKIM para usted al crear el dominio de correo electrónico (si recordó marcar la casilla DKIM). Corta y pega el registro DNS que es el público clave para su servicio de nombres como registro TXT. Su proveedor de servicios de nombre puede ofrecer una herramienta para facilitar la creación de registros DKIM. Mantenga en secreto la clave privada de DKIM.

Compruebe cómo se ve el DKIM en el servicio de nombres, así:

$ host -t txt default._domainkey.taleman.ovh.
default._domainkey.taleman.ovh descriptive text "v=DKIM1;h=sha256;s=*;p=MIIB(I cut long string shorter)0rp" "sTGLXyK(cut shorter)B;t=s;"

Si fue ISPConfig quien creó las claves DKIM, la clave privada se copia en el lugar correcto en la configuración de amavis.

Hay un sitio web mail-tester.com que es útil para verificar que SPF y DKIM estén funcionando. Vaya a ese sitio web, le da una dirección de correo electrónico y envía un correo electrónico allí desde su servidor. Luego espere un minuto y vuelva a consultar el sitio web.

Creando certificados

ISPConfig puede crear certificados autofirmados, estos se crean durante la instalación de ISPConfig a menos que decida no crearlos. Incluso si creó esos certificados autofirmados, es una buena idea crear certificados adecuados en los que confíen los navegadores, los programas de correo electrónico y otros servidores de correo electrónico.

Hay un buen tutorial:Protección de ISPConfig con un certificado SSL gratuito de Let's Encrypt

Siguiendo ese tutorial, noté que el sitio web creado mostraba la página web predeterminada de Debian, hasta que creé el certificado LE para el sitio web. Además, ISPConfig Panel no funciona bien, creo porque tenía el certificado autofirmado y ahora este nuevo certificado o ningún certificado. Actualizar páginas en el navegador solucionó esto.

Cuando se configuran los certificados, ingrese la dirección https del servidor en el navegador. Al hacer clic en el icono a la izquierda de la barra de direcciones del navegador con otro botón del mouse, se muestra información sobre el certificado.

Vaya a la pestaña Sistema del panel ISPConfig, Configuración principal de la interfaz y pestaña Correo. Hay conjunto

Use SSL/TLS encrypted connection for SMTP

a SSL.

Es posible realizar más pruebas del certificado con herramientas en sitios web, use motores de búsqueda de Internet con

ssl testing

como palabras de búsqueda. Esas herramientas generalmente prueban el sitio web, al probar los certificados que tiene el servidor de correo electrónico, busque con

ssl testing mail server

Complementos ISPConfig Roundcube

Estos complementos son útiles para los usuarios de correo web. Permiten cambiar la contraseña de correo electrónico en Roundcube, por ejemplo. Algunas otras configuraciones también se pueden modificar en Roundcube. Todos se pueden modificar en el panel ISPConfig, pero es posible que algunos usuarios de correo electrónico no deseen utilizar el panel.

Instalé los complementos ISPConfig Rouncube usando Tutorial ISPConfig 3 Roundcube Plugin en Debian 9. El tutorial funcionó exactamente en Debian 10 Buster, excepto que ahora ispconfig3_account/config/config.inc.php tiene una línea más:

$config['soap_validate_cert'] = true;

Esto puede permanecer en el valor verdadero, ya que el certificado se configuró y probó correctamente en el capítulo anterior de este tutorial. Sin embargo, si el host no tiene un certificado válido, cambie esta configuración a falso.

Tuve un problema. Aparece un mensaje de error en algunos elementos de la sección Cuenta

An error occurred.
Soap Error: The login is not allowed from <host ip-number>

Resolví esto marcando el Acceso remoto y escribiendo posti.taleman.ovh para ese usuario rcmail-remote que creé siguiendo el Tutorial. Parece que el tutorial está equivocado acerca de no necesitar "Acceso remoto" marcado. Ahora me parece que es necesario tanto para la configuración de un solo servidor como para la configuración de varios servidores ISPConfig con un servidor de correo electrónico separado.

Uso adicional

Ahora puede crear otro dominio de correo electrónico. Recuerde crear un registro MX para ese dominio y apuntarlo a su servidor de correo electrónico. Puede utilizar el mismo servidor de correo electrónico para todos los dominios de correo electrónico que cree. Esta es la forma habitual de hacerlo, ya que sería un desperdicio crear un servidor de correo electrónico independiente para cada dominio de correo electrónico.

Solución de problemas

Siguiendo este tutorial, mi servidor de correo electrónico recién configurado funciona. Si el tuyo no funciona, comprueba que has seguido este tutorial y no te has saltado algunos pasos.

Leer el foro ha demostrado que las formas comunes de tener un servidor de correo electrónico que no funciona son una configuración incorrecta para el nombre de host y el nombre de host -f y/o errores en el archivo /etc/postfix/main.cf.

Si sospecha que hay problemas con el servicio de nombres DNS, verifique aquellos con DNS con ISPConfig -tutorial. Existen herramientas de sitios web que comprueban el DNS, como intodns.com, dnschecker.com, mxtoolbox.com.

Si los correos electrónicos no se reciben o no se envían, es postfix el que realiza esas funciones y se registran en /var/log/mail.log. Haz lo mismo

tail -f /var/log/mail.log | grep postfix to see what happens when mail is being received or sent.

Si tiene problemas para conectarse con el cliente de correo electrónico (Thunderbird, por ejemplo), use esto para ver qué sucede:

tail -f /var/log/mail.log | grep dovecot

En caso de que un correo electrónico en particular sea problemático, puede encontrar las entradas del registro de correo usando la ID de ese correo electrónico. Por ejemplo:

Sep 23 14:19:34 posti postfix/smtps/smtpd[10260]: A9F2880C76:
client=dsl-tkubng21-58c1ce-191.dhcp.inet.fi[99.99.99.99],
sasl_method=PLAIN, [email protected]

El ID de ese correo electrónico es A9F2880C76. Puede encontrar entradas de registro para ese correo electrónico usando

# grep A9F2880C76 /var/log/mail.log

El comando mailq muestra los correos electrónicos que están en la cola diferida de postfix. Es decir, aquellos e-mails que aún no han sido entregados. Es normal tener algunas entradas recientes allí, los correos electrónicos no siempre se pueden entregar de inmediato. Puede ver el contenido de esos correos electrónicos utilizando el ID de cola, así:

# postcat /var/spool/postfix/deferred/A/A9F2880C76

Howtoforge tiene ISPConfig Forums, pida consejo allí.


Debian
  1. Cómo instalar el servidor Redis en Debian 11

  2. Cómo instalar el servidor HTTP Git con Nginx en Debian 11

  3. Cómo instalar MySQL 8.0/5.7 en Debian 11/Debian 10

  4. Cómo instalar ProFTPD en Debian 8

  5. Cómo instalar el servidor MySQL en Debian 9

Cómo instalar I2P en el servidor Debian:

Cómo instalar Icinga 2 en Debian 8

Cómo instalar VNC en Debian 10

Cómo instalar el servidor VNC en Debian 11

Cómo instalar ISPConfig en Debian 11

Cómo instalar Nginx con PHP-FPM en Debian 11