servidor de correo seguro en linux

44
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

Upload: andrez12

Post on 12-Jun-2015

871 views

Category:

Technology


10 download

TRANSCRIPT

Page 1: Servidor de Correo Seguro en Linux

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

Page 2: Servidor de Correo Seguro en Linux

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

Page 3: Servidor de Correo Seguro en Linux

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.

Page 4: Servidor de Correo Seguro en Linux

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.

Page 5: Servidor de Correo Seguro en Linux

5

Page 6: Servidor de Correo Seguro en Linux

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.

Page 7: Servidor de Correo Seguro en Linux

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.

Page 8: Servidor de Correo Seguro en Linux

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.

Page 9: Servidor de Correo Seguro en Linux

9

Agregamos una nueva entrada al Directorio mediante Apache Directory Studio.

Page 10: Servidor de Correo Seguro en Linux

10

Click en Next.

Seleccionamos la clase de objeto mailAccount, y las demás que se necesiten.

Page 11: Servidor de Correo Seguro en Linux

11

Copiamos el uid del usuario.

Añadimos los atributos mailbox y mailenable.

Page 12: Servidor de Correo Seguro en Linux

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.

Page 13: Servidor de Correo Seguro en Linux

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

Page 14: Servidor de Correo Seguro en Linux

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

[email protected] 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.

Page 15: Servidor de Correo Seguro en Linux

15

Con el comando cat observamos que el mensaje fue recibido exitosamente.

Page 16: Servidor de Correo Seguro en Linux

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 [email protected] 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.

Page 17: Servidor de Correo Seguro en Linux

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.

Page 18: Servidor de Correo Seguro en Linux

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.

Page 19: Servidor de Correo Seguro en Linux

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.

Page 20: Servidor de Correo Seguro en Linux

20

IMAP.

Page 21: Servidor de Correo Seguro en Linux

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.

Page 22: Servidor de Correo Seguro en Linux

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.

Page 23: Servidor de Correo Seguro en Linux

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.

Page 24: Servidor de Correo Seguro en Linux

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.

Page 25: Servidor de Correo Seguro en Linux

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.

Page 26: Servidor de Correo Seguro en Linux

26

Reiniciamos el dovecot.

Con openssl en modo cliente verificamos si se activó el TLS en el imap.

Page 27: Servidor de Correo Seguro en Linux

27

Repetimos el comando, pero en este caso cambiamos la opción imaps por

pop3s, así comprobamos que el TLS se activó correctamente.

Page 28: Servidor de Correo Seguro en Linux

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.

Page 29: Servidor de Correo Seguro en Linux

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.

Page 30: Servidor de Correo Seguro en Linux

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.

Page 31: Servidor de Correo Seguro en Linux

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.

Page 32: Servidor de Correo Seguro en Linux

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.

Page 33: Servidor de Correo Seguro en Linux

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.

Page 34: Servidor de Correo Seguro en Linux

34

Comprobamos que funciona sin inconvenientes la plataforma web con tls.

Page 35: Servidor de Correo Seguro en Linux

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 [email protected] 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

Page 36: Servidor de Correo Seguro en Linux

36

mailAlias.

Page 37: Servidor de Correo Seguro en Linux

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.

Page 38: Servidor de Correo Seguro en Linux

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.

Page 39: Servidor de Correo Seguro en Linux

39

Page 40: Servidor de Correo Seguro en Linux

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.

Page 41: Servidor de Correo Seguro en Linux

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.

Page 42: Servidor de Correo Seguro en Linux

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.

Page 43: Servidor de Correo Seguro en Linux

43

Adjuntamos un fichero que exceda la cuota de envío.

Funciona exitosamente la cuota de envío.

Page 44: Servidor de Correo Seguro en Linux

44

WEBGRAFÍA

● http://www.nanotutoriales.com/como-crear-un-certificado-ssl-de-firma-

propia-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