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

Resultado de comando libre

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.

Qué 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
  • host tiene una direcci√≥n IP fija
  • el host debe tener un registro A para su direcci√≥n IP (o AAAA si usa IPv6)
  • usted debe crear MX registro en el servicio de nombres DNS para el host
  • debe obtener el servicio de nombres de DNS inverso del host PTR registro que coincide con hosts FQDN

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 lo hace 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 puesto 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. Usé esos.

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

  • registr√≥ el dominio taleman.ovh
  • agreg√≥ 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√≥ el registro PTR del 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 nombre 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 A 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 fallaba 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. yo se de enDNS y MXToolbox.

Si no puede obtener las pruebas anteriores para tener é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:

Cómo instalar un servidor mínimo Debian 10 (Buster)

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]:~#

Instalación de ISPConfig

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

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

Resultado de comando libreAnuncio publicitario

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 base de datos PHPMyAdmin) utilicé el comando

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

para generar el secreto del pez globo de 32 caracteres de largo.

usando el sistema

Crear dominio de correo electrónico y buzones

Ahora inicio sesión como administrador en ISPConfig y

  • Agregar nuevo cliente
  • Agregue un nuevo dominio (¬°Dominio de correo electr√≥nico!) y complete el formulario
  • Agregar 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.

Crear dominio de correo en ISPConfig

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í. Use el botón Redactar y escriba un breve mensaje de prueba.

Iniciar sesión

Figura 2: correo web de Roundcube

Enviar correo electrónico en 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√≠. La pr√≥xima prueba puede enviarla 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 Greylisting:

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.

Configuración de la cuenta de Thunderbird

Figura 4: Configuración de la cuenta de Thunderbird

Configuración del servidor 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 intente si su cliente funciona con eso.

Servidor de correo saliente Thunderbird

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

Uso de FPS

Lea sobre el marco de pol√≠tica 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"

Uso de 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). Corte y pegue 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 sitio web mail-tester.com eso 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.

Creación de 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: Asegurar ISPConfig con un certificado SSL Let’s Encrypt gratuito

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. all√≠ establecido

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, cuando prueban los certificados que tiene el servidor de correo electr√≥nico, buscan 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 configuraciones de un solo servidor como para configuraciones multiservidor 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 verifican 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. Así que hazlo

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *