LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.

Ratio: 2 / 5

Inicio activadoInicio activadoInicio desactivadoInicio desactivadoInicio desactivado
 

Introducción:

Un certificado digital es esencial para asegurar las comunicaciones entre servidores de correo como Postfix y Dovecot. Estos certificados utilizan TLS (Transport Layer Security) para encriptar el tráfico y garantizar que las comunicaciones sean seguras y auténticas.

### Certificados Digitales para Postfix y Dovecot

Postfix y Dovecot son dos de los servidores de correo más comunes en Linux. Postfix maneja el envío y recepción de correos (SMTP), mientras que Dovecot se encarga del acceso a los correos (IMAP/POP3). Ambos pueden utilizar certificados digitales para asegurar las conexiones.

#### Generación e Instalación de Certificados

1. Generar un Certificado Autogenerado (Self-signed):

   Aunque no es recomendado para entornos de producción debido a problemas de confianza, un certificado autogenerado puede ser útil para pruebas.

   openssl req -new -x509 -days 365 -nodes -out /etc/ssl/certs/mailserver.crt -keyout /etc/ssl/private/mailserver.key

   - `/etc/ssl/certs/mailserver.crt`: Archivo del certificado.
   - `/etc/ssl/private/mailserver.key`: Archivo de la clave privada.

2. Obtener un Certificado de una Autoridad de Certificación (CA):

   Para entornos de producción, es mejor obtener un certificado de una CA confiable (por ejemplo, Let's Encrypt, Comodo, DigiCert).

   Con Let's Encrypt, puedes usar Certbot para obtener y renovar automáticamente certificados SSL:

   sudo apt-get install certbot
   sudo certbot certonly --standalone -d yourdomain.com

   Esto generará los archivos necesarios en `/etc/letsencrypt/live/yourdomain.com/`.

#### Configuración de Postfix

Una vez que tengas los certificados, necesitas configurar Postfix para usarlos. Edita el archivo de configuración de Postfix (`/etc/postfix/main.cf`):

# Habilitar TLS para Postfix
smtpd_tls_cert_file = /etc/letsencrypt/live/yourdomain.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/yourdomain.com/privkey.pem
smtpd_use_tls = yes
smtpd_tls_auth_only = yes

# Parámetros opcionales para mejorar la seguridad
smtpd_tls_security_level = may
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Después de editar el archivo de configuración, reinicia Postfix para aplicar los cambios:

sudo systemctl restart postfix

#### Configuración de Dovecot

Para configurar Dovecot para usar TLS, edita el archivo de configuración de Dovecot (`/etc/dovecot/dovecot.conf` o `/etc/dovecot/conf.d/10-ssl.conf`):

# Habilitar SSL/TLS
ssl = required

# Rutas a los archivos del certificado y la clave
ssl_cert = </etc/letsencrypt/live/yourdomain.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/yourdomain.com/privkey.pem

# Parámetros opcionales para mejorar la seguridad
ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1
ssl_cipher_list = HIGH:!aNULL:!MD5

Después de editar el archivo de configuración, reinicia Dovecot para aplicar los cambios:

sudo systemctl restart dovecot

### Verificación

Una vez configurados los certificados para Postfix y Dovecot, es importante verificar que todo esté funcionando correctamente.

1. Verificar la configuración de Postfix:

   openssl s_client -connect yourdomain.com:25 -starttls smtp

2. Verificar la configuración de Dovecot:

   openssl s_client -connect yourdomain.com:993

Estas pruebas deberían mostrar que las conexiones se establecen utilizando TLS y que los certificados son válidos.

### Conclusión

Instalar y configurar certificados digitales para Postfix y Dovecot es un paso crucial para asegurar las comunicaciones de correo electrónico. Utilizando certificados de una CA confiable como Let's Encrypt, puedes asegurar tus servicios de correo y proteger la privacidad y autenticidad de las comunicaciones de tus usuarios.

Fin de la introducción.


Vamos a hacerlo paso a paso, para lo cual siga los siguientes pasos.

 

Podemos crear el cerfificado para postifx_default.pem, así:

Para crear un certificado SSL/TLS para Postfix con una fecha de expiración hasta 2038, puedes utilizar OpenSSL. A continuación, te muestro los pasos detallados para generar un certificado autofirmado válido hasta 2038 y configurarlo en Postfix.

Instala OpenSSL (si no está instalado):

sudo apt-get update
sudo apt-get install openssl

Genera una clave privada y un certificado autofirmado:

openssl req -new -newkey rsa:2048 -days 5479 -nodes -x509 -keyout /etc/postfix/postfix_default.pem -out /etc/postfix/postfix_default.pem
  • new: Genera una nueva solicitud de certificado.
  • newkey rsa:2048: Crea una nueva clave privada RSA de 2048 bits.
  • days 5479: Especifica el número de días hasta la expiración del certificado. 5479 días equivalen a aproximadamente 15 años (hasta 2038).
  • nodes: No encripta la clave privada.
  • x509: Genera un certificado autofirmado en lugar de una solicitud de firma de certificado (CSR).
  • keyout /etc/postfix/postfix_default.pem: Especifica el archivo de salida para la clave privada.
  • out /etc/postfix/postfix_default.pem: Especifica el archivo de salida para el certificado.
    • Configura Postfix para usar el certificado:

      Abre el archivo de configuración de Postfix (/etc/postfix/main.cf) y añade o modifica las siguientes líneas:

smtpd_tls_cert_file = /etc/postfix/postfix_default.pem
smtpd_tls_key_file = /etc/postfix/postfix_default.pem
smtpd_use_tls = yes
smtpd_tls_security_level = may

Pero bueno... También vamos a hacerlo paso a paso... Incluso de diferentes formas...

 

Acceda al directorio /etc/pki/tls/.

 

cd /etc/pki/tls/

La creación de la firma digital y certificado requiere utilizar una clave con algoritmo RSA de 4096 octetos (bits), con estructura X.509 y sin DES. En el ejemplo a continuación, se establece una validez por 1825 días (cinco años) para el certificado creado:

openssl req -sha256 -x509 -nodes -newkey rsa:4096 -days 1825 \
-out certs/dominio.tld.crt -keyout private/dominio.tld.key

Lo anterior solicitará se ingresen varios datos:

  • Código de dos letras para el país.
  • Estado o provincia.
  • Ciudad.
  • Nombre de la empresa o razón social.
  • Unidad o sección.
  • Nombre del anfitrión.
  • Dirección de correo.

La salida debe devolver algo similar a lo siguiente:

Generating a 1024 bit DSA private key
writing new private key to 'smtp.key'
-----
You are about to be asked to enter information that will be
incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name
or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:ES
State or Province Name (full name) [Berkshire]:Madrid
Locality Name (eg, city) [Newbury]:Madrid
Organization Name (eg, company) [My Company Ltd]:ExtreHost
Organizational Unit Name (eg, section) []:ExtreHost
Common Name (eg, your name or your server's hostname) []:*.dominio.tld
Email Address []:Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Si definió un nombre de anfitrión absoluto (ejemplo: mail.dominio.tld), el certificado sólo será válido cuando el servidor de correo electrónico sea invocado con el nombre definido en el campo Common Name. Es decir, sólo podrá utilizarlo cuando se defina mail.dominio.tld como servidor SMTP/IMAP/POP3 con soporte TLS desde el cliente de correo electrónico. Funcionará incorrectamente si se invoca al servidor como, por mencionar un ejemplo, correo.dominio.tld. Es por eso que se sugiere utilizar *.dominio.com si se planea acceder hacia el mismo servidor con diferentes subdominios del mismo dominio.

A fin de facilitar a los clientes de correo electrónico el poder gestionar una futura actualización de certificado, conviene añadir una huella distintiva indubitable (fingerprint) al certificado.

openssl x509 -subject -fingerprint -noout -in certs/dominio.tld.crt

Es indispensable que todos los archivos de claves y certificados tengan permisos de acceso de sólo lectura para el usuario root:

chmod 400 certs/dominio.tld.crt private/dominio.tld.key

Para tener un único certificado ".pem", lo puedes crear así:

cat private/dominio.tld.key > dominio.pem ; cat certs/dominio.tld.crt >> dominio.pem

Para más información sobre el servidor de correo, revise:

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías