LinuxParty
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 # Parámetros opcionales para mejorar la seguridad |
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 # Rutas a los archivos del certificado y la clave # Parámetros opcionales para mejorar la seguridad |
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:
- Configura Postfix para usar el certificado:
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 \ |
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:
- Introducción a la Instalación y Configuración de un Servidor de Correo (postfix y dovecot)
- Instalar y configurar Postfix y Dovecot, con autenticación y TLS
- Comandos de Postfix (servidor de correo)
- Cómo configurar un servidor de correo con Postfix y Dovecot para diferentes necesidades
- Cómo configurar el servidor de correo Postfix y Dovecot con base de datos (MariaDB) de forma segura: parte 1
- Cómo configurar Postfix usando bases de datos Berkeley DB
-
Email
- Crear o generar un certificado digital para Postifx y Dovecot.
- Instalar y configurar Postfix y Dovecot, con autenticación y TLS
- Detectar y encontrar envíos de Spam desde los propios servidores con Postfix
- Como evitar que el servidor envíe Spam
- Prevenir o evitar el envío de spam saliente (verificando si existe el remitente)
- Mostrar y vaciar la cola de postfix
- Introducción a la Instalación y Configuración de un Servidor de Correo (postfix y dovecot)
- Sustituir MS Exchange: por Linux Email Servers II
- Visualizar la ruta que ha seguido un email con Mail Hops (Thunderbird)
- RainLoop Webmail - Un moderno cliente Web de Email para Linux
- Monitorizar / Vigilar usuario de correo Postfix y eMails
- Tutorial de mailman con postfix
- Usuarios virtuales y dominios con Postfix & Courier
- Cómo combatir virus usando Postfix
- Usando DSPAM & ClamAV con Postfix (Virtual Users) en Debian Etch