Servidor de Correo Seguro en Linux

Preview:

Citation preview

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

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

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.

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.

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.

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.

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.

9

Agregamos una nueva entrada al Directorio mediante Apache Directory Studio.

10

Click en Next.

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

11

Copiamos el uid del usuario.

Añadimos los atributos mailbox y mailenable.

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.

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

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.

15

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

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.

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.

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.

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.

20

IMAP.

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.

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.

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.

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.

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.

26

Reiniciamos el dovecot.

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

27

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

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

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.

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.

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.

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.

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.

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.

34

Comprobamos que funciona sin inconvenientes la plataforma web con tls.

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

36

mailAlias.

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.

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.

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.

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.

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.

43

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

Funciona exitosamente la cuota de envío.

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

Recommended