Correo Seguro, Quota Y Maillist Usando Dovecot+Postfix+LDAP, En CentOs

En días anteriores explique como configurar algunos elementos fundamentales para un servidor de correo, ademas explique como se hace una plataforma de correo con MUA, MTA y SMTP, también les mostré como se crean usuarios en bases de datos LDAP, y como se administra esta y se integra con el servidor de correo, el dia de hoy les mostrare como configurar algunas cosas básicas en un correo electrónico tales como la seguridad, las listas de correo y las cuotas de usuarios.

Les explicare brevemente algunos conceptos:

SMTP (Simple Mail Transfer Protocol)  SMTP es el protocolo simple de transferencia de correo, este funciona como una oficina de correos, recibiendo el mensaje y determinando cual sera el destinatario de este, también se encarga de hacer las consultas al servidor DNS para determinar dicha ruta a la que sera enviado el correo electrónico, funciona en la capa de aplicación y trabaja por el puerto 25 TCP.

MDA (Mail Delivery Agent) Es el agente de entrega de correo, responsable de aceptar el correo entrante desde el MTA y lo distribuye a los buzones o lo reenvía a un SMTP.

MTA (Mail Transport Agent) La comunicación para el envió de correos electrónicos se hace por medio del MTA, este es el que se comunica con el servidor MTA del otro dominio y determina la ubicación donde quedaran los mensajes de correo.

POP/IMAP (Post Office Protocol) (Internet Message Access Protocol) Son los protocolos que permiten al usuario acceder a sus buzones de correo, estos se diferencian el uno del otro en que el POP simplemente permite al usuario descargar sus correos de los buzones, mientras que el IMAP solo se descargan los que el cliente necesite.

MUA (Mail User Agent) Es un cliente de correo electrónico como Outlook, Thunderbird, Evolution, entre otros.

TLS (Transport Layer Security) Es el encargado de proporcionar seguridad en la capa de transporte y sera el que utilizaremos para nuestro servidor.

QUOTA Es el tamaño del buzon del usuario, en MB.

Maillist Son listas de distribución de correo, es decir permiten que enviando un correo al nombre de la lista este se distribuya a todos los buzones de los usuarios miembros de dicha lista.

Requerimientos:

En mi caso cuento con lo siguiente.

Un servidor DNS para la resolución de nombres del dominio gnunick.com.
Una base de datos LDAP para la autenticación de los usuarios de correo.
Un MTA (Postfix)
Un servidor POP/IMAP (Dovecot)
Un MDA (Procmail)
Un MUA (Thunderbird)
Un analizador de protocolos (Wireshark) para capturar paquetes y verificar la seguridad del correo.

La documentación necesaria para tener estos requisitos básicas la puedes encontrar en los siguientes links.





Cumpliendo entonces con los requisitos básicos procederemos a crear las llaves para asegurar nuestro correo.

Correo Seguro:

Cuando enviamos un correo no sabemos como se desplazan los datos en la red, pero en nuestro caso como tenemos nuestro correo configurado tenemos la certeza de que no es de una manera segura, les mostrare lo que pasa cuando escribimos un correo.

Cuando hacemos un telnet al servidor de correo por el puerto 143 (IMAP) tenemos la posibilidad de loguearnos contra nuestro servidor de correo escribiendo el usuario y la contraseña de la siguiente manera A login usuario contraseña.
Si hiciéramos una captura con un analizador de paquetes filtrando el protocolo IMAP obtendríamos lo siguiente.


Seguiremos la captura


Y como podemos ver los datos viajan en texto plano.


Verifiquemos que pasa cuando hacemos lo mismo con el protocolo SMTP, le haremos un telnet al servidor por el puerto 25. luego con ehlo host lo saludaremos, le diremos que enviaremos un correo de alejo@gnunick.com hasta karen@gnunick.com, luego le decimos que el contenido dirá hola y finalizamos, en la parte inferior de la imagen observamos la captura y seguiremos la trama.


Pasa lo mismo los datos están en texto plano.


Es indispensable asegurar nuestro servidor ya que un ataque de Man In The Middle resultaría catastrófico.

Comenzaremos editando los siguientes archivos los cuales definen el nombre del equipo, en este primero procederemos a introducir nuestra IP, luego nuestro FQDN y luego el nombre de la maquina.


Este también lo editaremos poniendo nuestro FQDN
 

Ahora reiniciamos la maquina y deberá tener el nombre que le acabamos de asignar, luego de reiniciada procederemos a generar la llave para el certificado digital, eso lo haremos con el crypto-utils bajándolo de los repositorios y después generamos la llave y le daremos 365 días de validez a nuestro equipo.

 

Ejecutado el anterior comando nos mostrara esta pantalla donde nos dirá cual es el certificado y la llave los cuales serán muy importantes en un momento.


Ahora le especificaremos el tamaño de nuestra llave.

 

Le diremos que si queremos enviar a una entidad certificadora.


 Elegimos la opción "Equifax"


 Llenamos los datos para el certificado.


Ahora nos mostrara el certificado y debemos presionar Enter para continuar con la llave privada.


 Definimos no cifrar la llave privada.


Ahora editaremos el archivo /etc/postfix/main.cf en este les muestro varias lineas que les explicare mas adelante, por ahora solo para la seguridad necesitan agregar las siguientes lineas

smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_key_file = (/etc/pki/tls/private/llave arrojada por crypto-utils)
smtpd_tls_cert_file = (/etc/pki/tls/cert/certificado arrojado por crypto-utils)
tls_random_source = dev:/dev/urandom

Nota: La siguiente imagen llamada main.cf la debemos verificar varias veces a lo largo del tutorial.


Bueno ahora les explicare algo, mas adelante vamos a hacer configuración de cuotas de correo, para esto necesitamos actualizar la versión de dovecot a la 1.2 para esto requerimos crear un repositorio.

Vamos a llamarlo centos.alt.ru.repo y le agregaremos las siguientes lineas, nótese que la linea enabled=0 define que el repositorio esta deshabilitado, esto lo hacemos por que solo lo necesitamos para el dovecot.


Ahora actualizamos el dovecot con el comando yum update dovecot --enablerepo CentALT.


Luego de actualizar editaremos el archivo dovecot.conf, a continuación les muestro cada una de las lineas que tengo en este, ustedes deberán buscarlas una a una y modificarlas.

Como por ahora solo veremos la seguridad las lineas importantes para hacer nuestro correo seguro son.

protocols = imap imaps pop3 pop3s

protocol imap {
listen = *:143
ssl_listen *:993}

ssl_cert_file = (/etc/pki/tls/cert/certificado arrojado por crypto-utils)
ssl_key_file = (/etc/pki/tls/private/llave arrojada por crypto-utils)

Nota: La siguiente imagen llamada dovecot.conf la debemos verificar varias veces a lo largo del tutorial.

Ahora reiniciaremos el dovecot y el postfix con sus respectivos demonios /etc/init.d/postfix restart y /etc/init.d/dovecot restart.

Ahora crearemos una cuenta en un MUA (Thunderbird en este caso) para tratar de enviar correos y verificar si son o no son seguros.




Aquí definimos el protocolo IMAP y el nombre del servidor.





Ahora nos metemos en las propiedades de la cuenta.


Le diremos que la seguridad utilizada es TLS para la autenticación.


Y le decimos lo mismo para el servidor SMTP.


Intentare autenticarme con la cuenta que acabo de crear y al tiempo hacer una captura para ver que pasa.


Cuando filtre por IMAP y seguí la trama pude ver que los datos ya no viajaban en texto plano, estaban siendo cifrados gracias a el certificado y la llave que creamos.


Ahora redactaremos un correo y seguiremos la captura para verificar que el SMTP también este cifrando la información.



Cuando filtre por SMTP pude observar el mismo resultado, es decir que nuestro servidor ya esta asegurado.


Ahora procederemos a configurar listas de correo.

Listas De Correo (Maillists):

Las listas de correo son una gran herramienta debido a que es un buen medio de comunicación y facilitan la distribución de los mensajes.

Revisaremos el archivo main.cf (en la parte superior de este manual), la linea que definiremos para hacer las maillist es la siguiente.

virtual_alias_maps = ldap:/etc/postfix/ldap-alias.cf

Esta linea apunta a el archivo /etc/postfix/ldap-alias.cf el cual debemos crear y esta sera su configuración.

server_host = (direccion loopback o del servidor ldap)
search_base = (basedn)
query_filter =(&(ObjectClass=objeto(atributo=resultado(atributo=característica))
result_attribute = valor a devolver
version = version del LDAP.

Ya tenemos los parámetros definidos ahora podremos reiniciar el postfix para que tome los cambios.

Ahora crearemos la lista y los miembros de esta, para esto nos iremos al LDAP desde el jxplorer.

Crearemos un mailalias con el nombre de la lista en este caso es lista@gnunick.com y solo le agregaremos los objetos mailAccount, person y top.


Definiremos estos datos.
cn = nombre de la lista
mail = lista@dominio.com
mailalias = lista@dominio.com
maildrop = miembro1
maildrop = miembro 2
maildrop = ...
mailenable = OK

 
Guardaremos los cambios y salimos, ahora verificamos que la lista de correos que acabamos de crear si reconozca en el ldap a los usuarios miembros de ella para esto ejecutamos el siguiente comando.

postmap -q (nombre de la lista) (motor de búsqueda):(archivo definido) 

Y nos deberá devolver los miembros de esta.
Ahora probaremos enviando un correo a la lista y este deberá llegarle a todos los miembros de esta, como podemos ver en la imagen anterior los miembros son santi@gnunick.com, jhon@gnunick.com y karen@gnunick.com


El correo fue enviado a lista@gnunick.com y como podemos observar les llego a todos los miembros.

Con esto las listas quedan terminadas ahora continuaremos con QUOTAS.

Quotas Dovecot:

Revisaremos el archivo dovecot.conf (en la parte superior de este manual),y las lineas que están definidas en este deberán quedar iguales, las mas importantes son las que dicen plugin, o quota ya que son las que definen que este es el plugin que estamos utilizando para controlar el tamaño de los buzones de los usuarios. En la parte inferior donde dice quita_rule = *:storage:4M definiremos el tamaño del buzon de los usuarios, en este caso 4 Megas.

También configuraremos el archivo dovecot-ldap.conf y nos deberá quedar de esta manera.


Ahora editaremos un archivo llamado /etc/postfix/master.cf el cual declarara que dovecot es el relay encargado de administrar los tamaños en los buzones de correo.

Solo tenemos que agregar la siguiente linea.
dovecot unix    -    n    n    -    -    pipe
    flags=DRhu    user=vmail:vmail    argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}


Y por ultimo en el main.cf (en la parte superior de este manual) escribiremos las lineas.

dovecot_destination_recipient_limit = 1
virtual_transport = dovecot

Ahora solo basta con reiniciar los servicios dovecot y postfix.

Probaremos enviando un archivo que pesa mas de 4 megas como dato adjunto.


Nos debera devolver el siguiente mensaje.


 Finalmente el correo rebotara devolviéndonos un aviso de "failure"


Con esto quedara todo configurado, este es un manual muy largo y pueden llegar a tener muchos errores, si tienen alguno no duden en escribirme ;) Comentar es Agradecer.

Si has encontrado útil este artículo puedes compartirlo desde tu blog, página Web o foro.




1 comentarios:

juan fernando dijo...

parce buen aporte todo esta muy bn pero yo le saque probecho a las listas gracias por la informacion si necesitas algo con gusto lo que pueda servirle http://redesroutersymas.blogspot.com/

Publicar un comentario

 
Licencia Creative Commons
Este obra está bajo una licencia Creative Commons Atribución-NoComercial-SinDerivadas 2.5 Colombia.