Your SlideShare is downloading. ×
  • Like
Servidor de Correo Seguro en Linux
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Servidor de Correo Seguro en Linux

  • 632 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
632
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
41
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ACTIVIDAD 11 - SOLUCIÓN DE CORREO GERSON ZAPATA AGUDELO JULIÁN CASTAÑEDA BRAHIAN ZAPATA MUÑOZ Ficha 455596 Tecnología en gestión de redes de datos Instructor Andres Mauricio Ortiz SERVICIO NACIONAL DE APRENDIZAJE CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL MEDELLÍN 2014 1
  • 2. Contenido INTRODUCCIÓN .......................................................................................................... 3 CONFIGURACIÓN DE OPENLDAP ............................................................................. 4 CONFIGURACIÓN DE SERVIDOR POSTFIX (MTA) USANDO LDAP COMO BACKEND. ................................................................................................................. 13 INSTALACIÓN Y CONFIGURACIÓN DE DOVECOT (MAA) ...................................... 16 OPENSSL Y CERTIFICADOS DIGITALES AUTOFIRMADOS ................................... 21 SMTP CON TLS Y SASL MEDIANTE EL DOVECOT ............................................. 22 IMAP Y POP3 CON TLS ......................................................................................... 25 SOLUCIÓN WEBMAIL CON TLS ............................................................................ 28 LISTAS DE DISTRIBUCIÓN ....................................................................................... 35 CUOTAS DE ALMACENAMIENTO Y ENVÍO ............................................................. 40 WEBGRAFÍA .............................................................................................................. 44 2
  • 3. INTRODUCCIÓN Una solución de correo consiste en toda la infraestructura tecnológica dentro de una empresa, en donde usuarios ya sean de una entidad en la web u organización obtienen servicios que le permiten intercambiar mensajes electrónicos con otros usuarios de la organización o dominio, o con usuarios de otras organizaciones o dominios en Internet. Sin embargo una solución de correo es mucho más que un simple servicio, es en realidad un entramado de servicios y tecnologías que interactúan entre sí para permitir, como mínimo, a los clientes finales (los usuarios del correo electrónico) intercambiar mensajes. Adicionalmente, debido a la tendencia de convergencia de servicios, una solución de correo electrónico también puede proveer funciones complementarias a sus clientes, como por ejemplo: Agenda Electrónica, Mensajería unificada y Almacenamiento remoto. Pero esto no es todo, la ya irrefutable necesidad de añadir seguridad en las transacciones de los diferentes entes que intervienen en una comunicación en los servicios de la solución de correo, y la necesidad de implantar métodos de autenticación y validación en las cuentas del correo electrónico aumentan el grado de complejidad de las soluciones de correo. 3
  • 4. CONFIGURACIÓN DE OPENLDAP En la actividad anterior se elaboró la configuración del Directorio LDAP, no obstante debemos agregar un esquema para definir clases y atributos a los usuarios para que puedan usar su cuenta de correo como lo son: mailenable, mailbox, maildrop, etc. Para agregar el esquema lo primero que debemos hacer es crearlo. 4
  • 5. 5
  • 6. Ahora vamos a convertir el mail.schema a mail.ldif, ya que estamos usando la versión 2.4 del openLDAP y éste trabaja directamente con archivos de extensión LDIF y no con SCHEMA. Para visualizar los esquemas actuales usamos el comando tree, como se puede ver no hay ningún esquema que se refiera a mail o correo electrónico. 6
  • 7. Creamos el fichero myschemas.conf y dentro de éste agregamos las siguientes líneas que lo que hacen es incluir los esquemas actuales y adiciona el mail.schema. Creamos el directorio para la creación de los esquemas en formato LDIF. 7
  • 8. Con slapest convertimos a LDIF. Verificamos con el comando tree y podemos ver mail.ldif. Copiamos el archivo cn={11}mail.ldif y la editamos para que queden las primeras tres líneas idénticas como se muestra en la imagen. Borramos las siguientes líneas. 8
  • 9. Agregamos una nueva entrada al Directorio mediante Apache Directory Studio. 9
  • 10. Click en Next. Seleccionamos la clase de objeto mailAccount, y las demás que se necesiten. 10
  • 11. Copiamos el uid del usuario. Añadimos los atributos mailbox y mailenable. 11
  • 12. NOTA: El atributo mail será usado para indicarle al servidor de correo el e-mail del usuario. NOTA: El atributo mailbox será usado para indicarle al servidor de correo cual será la ruta (path) del buzón del usuario. Por ejemplo si se almacenan los correos en /var/mail , el buzón de pedroq estará en la ruta /var/mail/pedroq/Maildir/. NOTA: El atributo mailenable será usado para indicarle al servidor de correo que la cuenta se encuentra activa o inactiva. 12
  • 13. CONFIGURACIÓN DE SERVIDOR POSTFIX (MTA) USANDO LDAP COMO BACKEND. Instalamos el postfix, en éste caso en la distribución de Red Hat ya viene instalado por defecto. Los ficheros principales de configuración son el main.cf y el master.cf. En el fichero main.cf va la configuración general del postfix y en el master.cf va la configuración o la integración de otros servicios con el postfix como ejemplo el dovecot. Editamos las lineas del main.cf como muestran las imágenes. myhostname: Define dirección IP del servidor o FQDN que va a estar escuchando las peticiones SMTP. mydomain: Define el dominio al que pertenece el servidor. myorigin: Es el nombre del dominio con el que se enviarán los correos salientes. inet_interfaces: Las interfaces que estarán escuchando las peticiones de clientes de correo. mynetworks: Las subredes a las que el servidor va a permitir el uso del correo. home_mailbox: Define el formato en que serán entregados los correos. mydestination: Especifica que dominios entregar localmente, en vez de enviarlo a otras máquinas. En este segmento va la configuración de los usuarios virtuales o los usuarios del directorio. virtual_mailbox_domains: Hace que Postfix reconozca el dominio de correo virtual. Si se incluye $mydomain en virtual_mailbox_domains no puede incluirse en mydestination. virtual_mailbox_base: Especifica un prefijo para todas las rutas de acceso de buzón virtual. En este directorio se crearán varios subdirectorios, uno por cada 13
  • 14. usuario del LDAP que sea también usuario de correo electrónico. Por ejemplo, para el usuario uid=brahianm,dc=abc,dc=org , postfix creará los directorios /var/vmail/brahianm y /var/vmail/brahianm/Maildir. Creamos el usuario vmail y le asignamos como home el directorio “/var/vmail/”. virtual_mailbox_maps: Especifica la tabla de búsqueda de los buzones. Este parámetro lo pasaremos usando LDAP, a través del atributo mailbox. Por ejemplo: cuando postfix recibe un correo electrónico para el usuario brahianm@abc.org necesita saber dónde almacenarlo, entonces realiza una consulta al servidor LDAP del atributo mailbox, del usuario brahianm. El servidor LDAP responderá que el atributo mailbox será brahianm/Maildir/. Creamos el fichero “ldap-accounts.cf”, en éste va descrita la forma en como se filtrará la búsqueda del usuario, si contiene el atributo mailbox y además si está habilitada la cuenta de correo. Reiniciamos el servicio. Verificamos con postmap que el usuario se mapee correctamente. Enviamos un correo mediante una consola. La imagen muestra que el directorio del usuario se creó correctamente y que hay un correo dentro del INBOX. 14
  • 15. Con el comando cat observamos que el mensaje fue recibido exitosamente. 15
  • 16. INSTALACIÓN Y CONFIGURACIÓN DE DOVECOT (MAA) Dovecot es un servidor de IMAP y POP3 Open Source para sistemas GNU/Linux o Unix en general Dovecot puede trabajar con el estándar MBOX y MAILDIR y es completamente compatible con clientes MUA que accedan directamente a los buzones de correo. Dovecot también incluye un Agente de Entrega de Correo llamado Local Delivery Agent (agente de entrega local o LDA). Por el momento, el agente de entrega de correo es virtual, a través de postfix, pero más adelante tendremos que configurar dovecot como MDA. Esto con el fin de que se impida la entrega de correos cuando los usuarios hayan excedido la cuota. Instalamos el dovecot. Con chkconfig habilitamos el arranque del servicio apenas inicie el servidor. Es recomendable conocer qué versión estamos usando del dovecot para buscar fácilmente la documentación de la página oficial. Editamos el fichero dovecot.conf el cual define los protocolos que se van a usar, e incluye todos los ficheros de configuración dentro del directorio /etc/dovecot/conf.d/. El 10-mail.conf es el fichero que permite que cada vez que un usuario quiera acceder al correo, se mapee a la ruta indicada en la directiva de mail_location, su funcionamiento consiste en que el %n se reemplaza por el nombre de usuario haciendo que el maildir del usuario brahianm@abc.org sea /var/vmail/brahianm/Maildir y las directivas mail_uid/mail_gid permiten el ingreso al directorio /var/vmail, ya que tienen los permisos correspondientes. 16
  • 17. Antes de que un usuario pueda acceder a su buzón desde el MUA, debe pasar por un proceso de autenticación con el servidor POP/IMAP. Este archivo permite configurar configurar qué tipo de backends se usarán para usuarios y contraseñas. En nuestro caso usamos LDAP. Comentamos la línea auth-system.conf.ext que usa los usuarios locales como autenticación, y descomentamos la línea auth-ldap.conf.ext que utiliza la autenticación mediante usuarios ldap. El fichero auth-ldap.conf.ext que se hace referencia debemos copiarlo ya que no está por defecto en el directorio /etc/dovecot/. Editamos el fichero. 17
  • 18. hosts: El servidor LDAP está en la misma máquina del servidor de correo (127.0.0.1). sasl_bind / tls: No se usará SASL ni TLS para la conexión con el LDAP. scope subtree: indica que la búsqueda de usuarios se realizará a partir la base dentro de todos los contenedores y sub-contenedores. auth_bind: Las búsquedas son anónimas, no se requerirá la autenticación con el servidor LDAP. base: Indica la base de búsqueda para los usuarios, en este caso será dc=abc,dc=com. user_filter y pass_filter: Son las directivas que permiten filtrar las búsquedas de usuarios y passwords, respectivamente. En otras palabras, los usuarios para DOVECOT serán aquellas entradas del directorio que sean instancias de la clase mailAccount, que el correo esté habilitado (mailenable=OK) y cuyo uid sea la parte de username del correo electrónico (%n). pass_attrs: especifica cuáles serán las credenciales para autenticarse en el servidor POP/IMAP. En este caso se usará el atributo uid como el login y el atributo userPassword como contraseña. 18
  • 19. Reiniciamos el servicio. Nos logueamos con el comando telnet al puerto 110 que es el puerto por defecto del pop3 y al puerto 143 que es el puerto por defecto del imap. POP3. 19
  • 20. IMAP. 20
  • 21. OPENSSL Y CERTIFICADOS DIGITALES AUTOFIRMADOS SSL (Secure Sockets Layer) y TLS (Transport Layer Security) son protocolos que se encargan de asegurar la transferencia de datos mediante diferentes protocolos de la capa de transporte. El certificado SSL es un certificado digital comúnmente usado para el cifrado de la información. Lo primero que debemos hacer es generar nuestra llave privada, luego de tener creado el certificado SSL dependerá de ésta llave para su funcionamiento en cualquier servicio que requiera una conexión segura. En este caso generamos una llave de 1024 bits. Creación del CSR (Certificate Signing Request). La base para un certificado SSL, en el se definen datos como el dominio, organización, ubicación, información de contacto, entre otros. Cabe aclarar que estas opciones también son necesarias cuando vas a adquirir un certificado SSL de un proveedor autorizado, durante la gestión del mismo, el proveedor va a solicitar este archivo para crear tu certificado. Por lo tanto, debemos tener mucho cuidado en que la información que ingresamos sea correcta. 21
  • 22. Generando el certificado SSL con expiriación “days”. Para ello es necesario tanto la llave privada como el CSR que anteriormente hemos creado. Copiamos la llave y el certificado a “/etc/ssl/certs/” teniendo en cuenta que para asegurar conexiones se debe hacer referencia a estos dos ficheros. SMTP CON TLS Y SASL MEDIANTE EL DOVECOT El SASL (Simple Autentication and Security Layer) consiste en un conjunto de requerimientos para los mecanismos de autenticación. Los protocolos IMAP, POP3 y SMTP tienen soporte para SASL. Editamos las líneas del fichero main.cf del postfix. 22
  • 23. SASL CONFIGURACIÓN smtpd_sasl_type: Define el tipo de SASL, puede ser Cyrus SASL o Dovecot. smtpd_sasl_path: Define si la comunicación es via sockets de Unix o TCP. smtpd_sasl_auth_enable: Activa la autenticación mediante SASL. smtpd_recipient_restrictions: Define restricciones para recibir los correos. TLS CONFIGURACIÓN smtpd_use_tls: Habilita el uso del TLS. smtpd_tls_auth_only: Habilita la opción de autenticación únicamente por tls. smtpd_tls_key_file: Se hace referencia a la llave privada. smtpd_tls_cert_file: Se hace referencia a el certificado digital. smtpd_tls_loglevel: Define el nivel de log para cuando se recibe correo. smtp_tls_loglevel: Define el nivel de log para cuando se envía correo. smtpd_tls_received_headers: Básicamente si se habilita muestra cabeceras en la comunicación con otros servidores de correo, suelen ser transacciones TLS. Verificamos las opciones SASL disponibles en nuestro servidor. Editamos las lineas del fichero 10-master.conf, las cuales definen el socket y permisos para la autenticación mediante SASL por dovecot. 23
  • 24. Descomentamos las lineas que se muestran en la imagen, de éste modo integramos el SASL del dovecot con el postfix. Reiniciamos el postfix y el dovecot. Con openssl en modo cliente verificamos si el TLS se activó correctamente. 24
  • 25. IMAP Y POP3 CON TLS Para configurar TLS en dovecot solamente debemos agregar el protocolo y hacer referencia a la llave privada igualmente que al certificado digital en el fichero 10-ssl.conf. 25
  • 26. Reiniciamos el dovecot. Con openssl en modo cliente verificamos si se activó el TLS en el imap. 26
  • 27. Repetimos el comando, pero en este caso cambiamos la opción imaps por pop3s, así comprobamos que el TLS se activó correctamente. 27
  • 28. SOLUCIÓN WEBMAIL CON TLS Un webmail es una plataforma que permite a los clientes de correo electrónico revisar el buzón y enviar correo mediante un navegador por vía web. Para implementar esta solución ya se había instalado el xampp en un manual anterior. Hacemos un soft link del xampp dentro de /etc/init.d/ para que lo reconozca se reconozca como un servicio. Con chkconfig decidimos que el xampp se inicie apenas arranque el sistema. Editamos el fichero que se encarga de asegurar el apache dentro del xampp. 28
  • 29. Habilitamos el puerto seguro 443 al igual que el SSL, y definimos un host virtual haciendo referencia a la llave privada y el certificado digital para la comunicación segura. Agregamos éstos host virtuales para que sólo se pueda ingresar al phpmyadmin localmente y que sólo se permitan conexiones al puerto 443. Descargamos el roundcube de la página principal http://roundcube.net/download/ y lo descomprimimos dentro del Document Root en éste caso el default de apache. Se observa que se creó el directorio roundcube el cual tiene el aplicativo. Para instalar el roundcube debemos tener creada una base de datos, por lo que vamos a crearla con el phpmyadmin. Vamos a la sección de usuarios y agregamos un nuevo usuario. 29
  • 30. Digitamos el nombre del usuario, la contraseña y activamos la opción de crear base de datos con el mismo nombre y otorgar todos los privilegios y damos click en continuar. 30
  • 31. Como se ve en la imagen la base de datos ha sido creada de manera exitosa. Llenamos el formulario acorde a nuestra configuración hecha anteriormente. Descargamos los dos archivos generados de la configuración del roundcube, el main.inc.php contiene la configuración general y el db.inc.php la configuración de la base de datos. 31
  • 32. Copiamos los ficheros dentro de el directorio config del roundcube. Dando click en inicializar la base de datos se instalan las tablas y por lo tanto el roundcube ya quedará instalado. 32
  • 33. Luego de verificar que hay conexión con el smtp y el imap procedemos a inhablitar en la configuración general del roundcube la sección del instalador, para no correr el riesgo de que cualquier persona altere el funcionamiento del roundcube. Así ya podemos iniciar a la plataforma web en modo seguro, digitamos el nombre y la contraseña de un usuario que esté en la base de datos LDAP. 33
  • 34. Comprobamos que funciona sin inconvenientes la plataforma web con tls. 34
  • 35. LISTAS DE DISTRIBUCIÓN Una lista de distribución es una lista de correos de usuarios que tienen algo en común, dado que si un correo se envía a direccion@abc.org lo recibirán los usuarios pertenecientes a la dirección general. Para crear una lista de distribución debemos crear una entrada dentro de la unidad organizativa que se requiera. La nueva entrada debe ser tipo mail y los objectClass deben ser mailAccount y 35
  • 36. mailAlias. 36
  • 37. Los atributos mail y mailalias son obligatorios, a parte de esos dos agregaremos los correos de los usuarios con el atributo maildrop. Finalizamos la creación de la entrada. 37
  • 38. Agregamos la directiva virtual_alias_maps en el fichero main.cf del postfix, y hacemos un procedimiento parecido al mapeo de usuarios. Creamos el fichero maillist.cf y agregamos las siguientes líneas que lo que hacen es verificar que exista la entrada en el árbol de directorio y filtra los atributos maildrop y luego deposita el correo en el buzón de cada usuario. Verificamos con el comando postmap que al hacer referencia a la entrada mail, si se mapeen los correos correspondientes. Ahora verificaremos mandando un correo a la lista de distribución. Como muestran las siguientes imágenes el correo fue entregado correctamente a los usuarios de la lista de distribución. 38
  • 39. 39
  • 40. CUOTAS DE ALMACENAMIENTO Y ENVÍO La configuración de cuotas de almacenamiento suelen ser muy usadas, ya que mediante ellas se evita el riesgo llenar el disco duro en un tiempo corto, al igual que la cuota de envío que permite que un usuario sólo pueda enviar una cantidad de tamaño de archivos adjuntos, dado a que cada correo no debe exceder el tamaño, el buzón no se llenaría con un sólo correo. Para configurar las cuotas de almacenamiento primero hay que habilitar los plugins en el dovecot y en cada protocolo IMAP y POP3. Dado que el postfix debe saber que si un usuario excede la cuota no entrega el correo, debemos integrar el dovecot con el postfix para la función mencionada, en el fichero master.cf del postfix agregamos las siguientes líneas, haciendo que el postfix sepa cuando un buzón excede la cuota. Agregamos las reglas de quota dependiendo de las necesidades, en éste ejemplo cada usuario va a poder tener una giga de almacenamiento en el INBOX, en el directorio Sent 25 Megas, y tanto la Papelera como el directorio de Spam será de 10 Megas. 40
  • 41. Los quota warnings son las advertencias que hace el dovecot cuando el buzón se está llenando. En la siguiente imagen lo que hacemos es habilitar la cuota para el maildir de los usuarios. Para configurar la cuota de envío añadimos la siguiente línea al fichero de configuración main.cf del postfix en éste caso el máximo tamaño es de 25M. Dado que el roundcube trae configurado por defecto no dejar subir ficheros mayores a 5M modificamos las líneas siguientes del fichero oculto htaccess con los valores correspondientes. 41
  • 42. Reiniciamos el postfix, dovecot y el apache (xampp). Con el comando doveadm verificamos la cuota de almacenamiento de un usuario por medio de consola. Verificamos desde el navegador en la parte inferior izquierda nos sale la cuota y el porcentaje de uso. 42
  • 43. Adjuntamos un fichero que exceda la cuota de envío. Funciona exitosamente la cuota de envío. 43
  • 44. WEBGRAFÍA ● http://www.nanotutoriales.com/como-crear-un-certificado-ssl-de-firmapropia-con-openssl-y-apache-http-server - Certificados digitales apache ● http://wiki2.dovecot.org/SSL/DovecotConfiguration - SSL Dovecot ● http://wiki2.dovecot.org/HowTo/PostfixAndDovecotSASL - SASL ● http://www.postfix.org/VIRTUAL_README.html - Virtual Mailbox ● http://informatica.iessanclemente.net/manuais/index.php/Instalación_y_a dministración_de_Servicio_de_Correo_Electrónico_en_Debian ● http://wiki2.dovecot.org/Quota/Configuration - Quotas Almacenamiento 44