Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. http://www.apartamentoenfamilia.es. Número registro HUTT-005768

miércoles, 1 de septiembre de 2010

Instalar Postfix con soporte de encriptación TLS


Postfix es un Agente de Transporte de Correo (MTA) de software libre / código abierto, un programa informático para el enrutamiento y envío de correo electrónico, creado con la intención de que sea una alternativa más rápida, fácil de administrar y segura al ampliamente utilizado Sendmail. Anteriormente conocido como VMailer e IBM Secure Mailer, fue originalmente escrito por Wietse Venema durante su estancia en el Thomas J. Watson Research Center de IBM, y continúa siendo desarrollado activamente.
Postfix es el agente de transporte por omisión en diversas distribuciones de Linux y en las últimas versiones del Mac OS X.


(Fuente Wikipedia)

Por otro lado tenemos que SSL proporciona autenticación y privacidad de la información entre extremos sobre Internet mediante el uso de criptografía. Habitualmente, sólo el servidor es autenticado (es decir, se garantiza su identidad) mientras que el cliente se mantiene sin autenticar; la autenticación mutua requiere un despliegue de infraestructura de claves públicas (o PKI) para los clientes. Los protocolos permiten a las aplicaciones cliente-servidor comunicarse de una forma diseñada para prevenir escuchas (eavesdropping), la falsificación de la identidad del remitente (phishing) y alterar la integridad del mensaje.

(Fuente Wikipedia)

Así que vamos a ver como hacer que nuestro Postfix tenga soporte TLS. Primeramente deberemos instalar el Postfix:

usuario@Server:~$ sudo apt-get install postfix
[sudo] password for csi: 
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes extras:
  ssl-cert
Paquetes sugeridos:
  procmail postfix-mysql postfix-pgsql postfix-ldap postfix-pcre sasl2-bin resolvconf postfix-cdb mail-reader
Se instalarán los siguientes paquetes NUEVOS:
  postfix ssl-cert
0 actualizados, 2 se instalarán, 0 para eliminar y 3 no actualizados.
Necesito descargar 1414kB de archivos.
Se utilizarán 3666kB de espacio de disco adicional después de esta operación.
¿Desea continuar [S/n]?
Los archivos esenciales de configuración son estos:
  • main.cf
  • master.cf
  • access

Una vez modificados a nuestras necesidades deberemos añadir el soporte TLS:
  • Crear una nueva autoridad certificadora 
  • Realizar la petición de un certificado 
  • Firmar el certificado 
  • Copiar y cambiar permisos de los archivos

En resumen:
cd /etc/postfix
mkdir /etc/postfix/ssl
/usr/lib/ssl/misc/CA.pl -newca
/usr/lib/ssl/misc/CA.pl -newreq-nodes
/usr/lib/ssl/misc/CA.pl -sign
cp demoCA/cacert.pem /etc/postfix/ssl/
cp newcert.pem /etc/postfix/ssl/
cp newreq.pem /etc/postfix/ssl/
cp newkey.pem /etc/postfix/ssl/
chown root /etc/postfix/ssl/newreq.pem
chmod 400 /etc/postfix/ssl/newreq.pem
chown root /etc/postfix/ssl/newkey.pem
chmod 400 /etc/postfix/ssl/newkey.pem

Ahora explicando los por pasos:

Crear una nueva autoridad certificadora 
/usr/lib/ssl/misc/CA.pl -newca
Realizar la petición de un certificado 
/usr/lib/ssl/misc/CA.pl -newreq-nodes
Firmar el certificado 
/etc/postfix# /usr/lib/ssl/misc/CA.pl -sign
Copiar y cambiar permisos
mkdir /etc/postfix/ssl
cp demoCA/cacert.pem /etc/postfix/ssl/
cp newcert.pem /etc/postfix/ssl/
cp newreq.pem /etc/postfix/ssl/
cp newkey.pem /etc/postfix/ssl/
chown root /etc/postfix/ssl/newreq.pem
chmod 400 /etc/postfix/ssl/newreq.pem
chown root /etc/postfix/ssl/newkey.pem
chmod 400 /etc/postfix/ssl/newkey.pem
El archivo main.cf lo tendremos que modificar para que contenga las siguientes lineas:

smtpd_use_tls = yes
# smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/postfix/ssl/newkey.pem
smtpd_tls_cert_file = /etc/postfix/ssl/newcert.pem
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem

smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
Con esto ya deberia funcionar.

That u don't know what you've got 'til it's gone