servidor de correo en debian

92
PROYECTO PLATAFORMA DE CORREOS SOBRE LINUX DEBIAN Administración de Redes de Computadores Presentado por: Rafael Emiro Vega Tirado. Jeyson Andrey Henao Alvarez. Jonathan Andrés Loaiza García. César Augusto Pineda González. Leidy Marcela Martinez Alzate. Grupo: 9 HELP LAN Presentado a: Prof. Andrés Mauricio Ortiz. Servicio Nacional de Aprendizaje “SENA” Regional Antioquia Centro de Servicios y Gestión Empresarial. 2008

Upload: ces1227

Post on 27-Jan-2015

3.123 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Servidor De Correo En Debian

PROYECTO

PLATAFORMA DE CORREOS SOBRE LINUX DEBIAN

Administración de Redes de Computadores

Presentado por:

Rafael Emiro Vega Tirado.

Jeyson Andrey Henao Alvarez.

Jonathan Andrés Loaiza García.

César Augusto Pineda González.

Leidy Marcela Martinez Alzate.

Grupo: 9 HELP LAN

Presentado a:

Prof. Andrés Mauricio Ortiz.

Servicio Nacional de Aprendizaje “SENA”

Regional Antioquia

Centro de Servicios y Gestión Empresarial.

2008

Page 2: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

ÍNDICE

Página.

1 Introducción. 4

2 Objetivos. 5

2.1 Objetivo General. 5

2.3 Objetivos Específicos. 5

3 Conceptos Teóricos. 6

3.1 MTA. 6

3.2 MDA. 6

3.3 MUA. 6

3.4 WEBMAIL. 7

3.5 Postfix. 7

3.6 Dovecot. 7

3.7 Amavis-New. 8

3.8 SASL. 8

3.9 SSL Y TLS. 8

3.10 Squirrelmail. 8

3.11 Tipos De Buzones Para El Correo. 9

3.11.1 Mailbox. 9

3.11.2 Maildir. 9

3.12 Mandriva Directory Server “MDS”. 10

3.13 Cómo Trabaja El Servidor De Correos. 11

4 Descripición De Los Paquetes A Utilizar. 12

5 Instalación. 14

5.1 Preparación Del Sistema. 14

5.2 Hostname. 14

5.3 Filesystem ACL´s. 15

5.4 Repositorios. 16

5.5 Instalación De Los Paquetes A Utilizar. 18

6 Configuraciones. 27

6.1 Configuración Del LDAP. 27

6.2 Configuración De Samba. 33

2

Page 3: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

6.3 Configuración Del PAM LDAP. 43

6.4 Configuración DNS (BIND9). 46

6.5 Configuración DHCP. 46

6.6 SSL Para El Correo (Entidad Certificador). 47

6.7 Configuración SASL. 48

6.8 Configuración Postfix. 50

6.9 Configuración De Dovecot. 55

6.10 Configuración De Amavis. 58

6.11 Configuración De Spamassassin. 60

6.12 Certificados SSL. 62

6.13 Configuración Sitio Web MMC. 62

6.14 Configuración Sitio Web Squirrelmail. 65

6.15 Configuración Plugin MMC. 68

6.16 Interfaz MMC. 71

7 Configuración Del Lado Del Cliente. 83

8 Comprobación Del Servidor De Correos. 86

8.1 Usuarios Y Dominios Virtuales. 86

8.2 Comprobación Antispam. 89

8.3 Comprobación Antivirus. 90

9 Conclusión. 91

10 Bibliografía. 92

3

Page 4: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

1 INTRODUCCIÓN

En éste proyecto presentaremos una guía avanzada de cómo instalar y

configurar una plataforma o sistema de correos segura utilizando el MTA

Postfix, Dovecot (IMAP y POP3), Amavis-New (Spamassassin y ClamAV), TLS,

OpenSSL, SASL, Squirrelmail. De igual forma, se debe instalar y configurar un

Servicio de Directorios para poder autenticar y almacenar la base de datos de

los usuarios, para esto se utilizará la base de datos de OpenLDAP la cual será

administrada desde el servicio de directorio de Mandriva Directory Server. Todo

lo anterior estará instalado y configurado sobre el Sistema Operativo

GNU/Linux Debian.

4

Page 5: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

2 OBJETIVOS

2.1 OBJETIVO GENERAL

Se debe diseñar, implementar y gestionar un sistema o plataforma de correos

en el Sistema Operativo GNU/Linux Debian.

2.2 OBJETIVOS ESPECÍFICOS

Se debe presentar un manual de configuración del sistema de correos. En cuyo

manual se debe tener en cuenta los siguientes objetivos en lo que se enfocará

el proyecto.

• Cifrar el tráfico entre usuarios y servidor.

• Validar los usuarios contra un sistema de directorios.

• Almacene los correos de los usuarios en un sistema de directorios.

• Permita configurar usuarios y dominios virtuales.

• Soporte un sistema de antivirus, antispam y antimawalre.

• Soporte administración gráfica.

• Soporte acceso POP, IMAP y Webmail (Realizarlo de forma segura con

SSL).

5

Page 6: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

3 CONCEPTOS TEÓRICOS

3.1 MTA

Mail Transportation Agent, Agente de Transporte de Correo. Es una aplicación

que cumple la función de transferir correos electrónicos de una computadora a

otra. En si, éste es el servidor de correos que utiliza el protocolo SMTP. Dentro

de MTA´s están: Microsoft Exchange, Postfix, Sendmail, Qmail, Exim, entre

otros.

• SMTP: (Simple Mail Transfer Protocol, Protocolo Simple de

Transferencia de Correos). El cual se basa en el intercambio de correos

electrónicos entre equipos de cómputo, entre otros dispositivos como los

son los celulares, PDA´s, etc. Éste se basa en la estructura Cliente-

Servidor. Trabaja por el puerto 25

3.2 MDA

Mail Delivery Agente, Agente de Entrega de Correo. Un MTA del destinatario

entrega el correo electrónico al servidor de correo entrante (Otro MTA), cuando

esto sucede, servidor de correo entrante recibirá el nombre de MDA, el cual

almacena el correo electrónico mientras espera que el usuario lo acepte.

3.3 MUA

Mail User Agent, Agente Usuario de Correo. Es un programa, que se instala en

la computadora del usuario, con el fin de realizar las funciones de leer y enviar

correos electrónicos. Dentro de éstas características están: Microsoft Outlook,

Mozilla Thunderbird, Eudora Mail, Incredimail, Lotus Notes, entre otros.

6

Page 7: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

3.4 WEBMAIL

Es un cliente de correo electrónico, el cual provee una interfaz Web con el fin

de acceder a los correos electrónicos; es decir, con ésta aplicación podemos

ingresar, leer, enviar correos electrónicos vía Web.

3.5 Postfix.

Es un MTA de código abierto, utilizado para el envío de correos electrónicos

utilizando el protocolo en SMTP, el cual pretende ser fácil en su administración,

ser rápido y, algo importante, ser compatible con otros MTA como Sendmail,

Qmail, Exim, entre otros.

Postfix no es un programa monolítico, sino que utiliza una gran combinación de

paquetes; dichos paquetes cumple una función específica en los parámetros de

configuración.

3.6 Dovecot.

Simplemente es un Servidor POP/IMAP. Éstos son utilizados para recuperar los

mensajes de los servidores MDA.

• POP: (Simple Mail Transfer Protocol), utilizado en los clientes locales de

correo con el fin de obtener los correos almacenados en un servidor

remoto, de ésta forma, los correos se pueden guardar en el equipo

cliente, aunque nada impide dejar los correos en el servidor. Trabaja en

el puerto 110

• IMAP: (Internet Message Access Protocol), Es más complejo y obtiene

ciertas ventajas sobre POP por ejemplo: Permite visualizar los correos

remotamente y no descargarlos al equipo cliente como lo hace POP, de

tal forma que si se borra un mensaje desde un usuario se borrará en el

servidor, si abrimos un mensaje desde el cliente también se abrirá en el

servidor. Trabaja en el puerto 143

7

Page 8: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

3.7 AMAVIS-NEW

Es una interfaz entre el MTA y los filtros de contenido (ClamAV Y

Spamassassin). Éste se comunica con el MTA mediante el protocolo SMTP o

LMTP. Trabajan por el puerto 10025

• Spamassassin: Es un filtro de correos, el cual cumple la función de

identificar el spam mediante el análisis del texto contenido en el

mensaje.

• ClamaAV: Éste paquete cumple la función de escanear el texto y los

archivos adjuntos del mensaje, de ésta forma el ClamAV bloquea los

malware o códigos maliciosos. La base de datos de éste se encuentra

permanentemente actualizada.

3.8 SASL

Es un Framework utilizado para la autenticación y autorización de protocolos de

red. Sin embargo requiere mecanismos de ayuda como lo es TLS para realizar

el cifrado de los datos al momento de ser transferidos.

3.9 SSL Y TLS

Secure Sockets Layer/Protocolo de Capa de Conexión Segura y Transportation

Layer Security/Seguridad de la Capa de Transporte. Proporcionan seguridad en

la red mediante el cifrado de la comunicación. Postfix/TLS no implementa por sí

mismo TLS, éste debe utilizar un paquete adicional: OpenSSL. Corren por el

puerto 636

3.10 SQUIRRELMAIL

Es un WebMail o cliente Web, el cual cumple la función de revisar y enviar

correos desde una interfaz Web.

8

Page 9: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

3.11 TIPOS DE BUZONES PARA EL CORREO

Los servidores de correo utilizan uno de los dos tipos de buzones: Mailbox y

Maildir.

3.11.1 MAILBOX:

Es un tipo de buzón que almacena los correos en forma de cola, es decir, éste

almacena todos los correos de un respectivo usuario en un solo archivo; de

ésta forma todo correo, sea spam, enviado o recibido se al macerarán en ese

único archvio. Cada usuario, por lógica tiene su propio archivo. En Linux De-

bian éste archivo está ubicado en la siguiente ruta /var/spool/mail/[USUARIO].

3.11.2 MAILDIR:

Es otro tipo de buzón consiste en un directorio, en el cual existen otros

subdirectorios en los que van guardados los mensajes en diferentes archivos.

De ésta forma los mensajes spam, enviados o recibidos se almacenarán en

archivos distintos. En Linux Debian generalmente el archivo Maildir se

encuentra en la siguiente ruta /home/[USUARIO]/Maildir.

9

Page 10: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

3.12 MANDRIVA DIRECTORY SERVER “MDS”

Es una plataforma de directorio o servicio de directorio basado en OpenLDAP

diseñado para cumplir la función de gestionar identidades, control de acceso a

la información, definir políticas administrativas en la red, administración de

servios de red, las aplicaciones y la configuración de los usuarios. Éste servicio

de directorio puede correr sobre diferentes distribuciones de Linux, en pocas

palabras, se puede instalar y configurar tanto en la distribución de Linux

Mandriva como en Linux Debian, entre otras.

Se puede dar una breve explicación mediante la siguiente gráfica a cerca del

funcionamiento de éste.

• Servicio de Directorios: Es un repositorio de información estructurado

que cumple la función de almacenar y organizar la información de los

usuarios en la red de datos. Por medio del SD se logra el acceso a los

recursos sobre una red.

• OpenLDAP: Lightweight Directory Acces Protocol, Protocolo Ligero de

Acceso a Directorios. Como sus siglas lo indica, es un protocolo de tipo

Cliente-Servidor utilizado para acceder a un servicio de directorio;

trabaja por el puerto 389. OpenLDAP se puede definir como una tipo de

base de datos. LDAP es el protocolo propietario de Microsoft, en cambio

OpenLDAP hace parte del software libre o de licencia libre.

• Directorios: Es una base de datos, que en general contiene información

más descrita basada en atributos.

10

Page 11: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

3.13 CÓMO TRABAJA EL SERVIDOR DE CORREOS

Cuando un correo electrónico es enviado, el mensaje se enruta de servidor al

servidor hasta llegar al servidor de correo destinatario, de ésta forma, el

mensaje se envía al servidor de correo (MTA), el cual tiene como función de

transportar los mensajes hacia el MTA destinatario. En Internet los servidores

MTA se comunican mediante el protocolo SMTP, por lo que también son

llamados servidores SMTP o servidores de correo saliente.

Luego el MTA destinatario entrega el correo electrónico al MDA o servidor de

correo entrante; éste almacena el mensaje mientras espera que el usuario lo

acepte. Los servidores MDA también reciben el nombre de servidores

POP/IMAP.

11

Page 12: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

4. DESCRIPCIÓN DE LOS PAQUETES A UTILIZAR

Para la instalación del MDS junto con la plataforma de correo se deben instalar

ciertos paquetes, por consiguiente, se deberá realizar una pequeña explicación

de la función de cada paquete.

• Mmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy

mmc-web-samba mmc-agent: Son los paquetes utilizados para la

administración gráfica del servicio de directorios como tal.

• Python-mmc-plugins-tools python-mmc-base python-mmc-mail

python-mmc-network python-mmc-proxy python-mmc-samba: Son

las librerías de Python (Lenguaje de programación), utilizados para

comprender el lenguaje de los paquetes mmc.

• Postfix: es el MTA como tal.

• Postfix-ldap: es el esquema del Postfix con el fin de ser utilizado para

ser poblado en la base de datos del LDAP.

• Dovecot-common, dovecot-imapd, dovecot-pop3d: Contienen los

servicios de POP3 e IMAP.

• Amavisd-new: Es el paquete que contiene la interfaz entre el MTA y los

filtros.

• Lzop, zoo, unzip, unrar, unzoo, arj, gzip, bzip2, nomarch: Utilidades

compresor de archivos.

• Razor, pyzor, dcc: Son las bases de datos, ubicadas en Internet, que

contienen las listas de spam. De ésta forma Éstos le indican a

Spamassassin qué debe detectar como spam.

• Sasl2-bin, libsasl2, libsasl2-modules: Utilizado para la autenticación y

autorización de algunos protocolos de red, depende de sus respectivas

librerías.

• Dhcp3-server, dhcp3-server-ldap, bind9: Son los paquetes que

contienen los servicios de DHCP y DNS y su respectivos paquetes para

ser poblados al LDAP.

12

Page 13: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

• Clamav, clamav-daemon: Es el paquete que instala el Antivirus para el

servidor de correos.

• Spamassassin: Es el paquete del Antispam para el servidor de correos.

• Slapd: Es el paquete del LDAP.

• Samba, smbclient, smbldap-tools: Samba es el servidor como tal,

smbclient es el cliente de samba y el paquete sambldap-tools es el que

define cómo se conectará el Samba con el LDAP.

• Squirrelmail: Es un Webmail tilizado para revisar los correos vía Web.

13

Page 14: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

5. INSTALACIÓN.

5.1 Preparación del Sistema.

Nuestra máquina contará con las siguientes especificaciones:

Hostname: server1.grupo9.com

Samba Domain: GRUPO9

IP: 192.168.0.19

Gateway: 192.168.0.1

Passwords Para Todo: sena2008

5.2 Hostname: Editar el archivo hosts con el fin de que nuestra máquina nos

resuelva localmente por ahora.

#pico /etc/hosts

El archive debe quedar de ésta forma:

127.0.0.1 localhost.localdomain localhost192.168.0.19 server1.grupo9.com server1

# The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts

Proceder a poner como nombre a nuestra máquina server1.grupo9.com el cual

se define en el archivo hostname

#echo server1.grupo9.com > /etc/hostname

Luego reiniciamos el sistema para que aplique los cambios efectuados.

14

Page 15: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

#reboot

Probamos de la siguiente forma si los cambios fueron aplicados.

Para ver el nombre de nuestra máquina.

#hostname

Para probar si nuestra propia máquina está resolviendo nuestro nombre de

host FQDN.

#hostname -f

FQDN: Fully Qualified Domain Name, Es el nombre que incluye el

“nombre de equipo” y el “nombre de dominio” asosociado a un equipo. Por

ejemplo, en nuestro caso, nuestro nombre de máquina es server1 cuyo dominio

es grupo9.com, el FQDN será server1.grupo9.com.

En ambos resultados nos debe mostrar lo siguiente.

server1.grupo9.com

5.3 Filesystem ACL´s.

Se debe agregar ACL´s al Filesystem a nuestro punto de montaje “/”.

ACL: Access Control List, Lista de Control de Acceso. En este sistema

de permisos los ficheros no tienen fijos los permisos (como en el modelo

tradicional, que tiene tres permisos “para el usuario propietario, grupo

propietario y otros”), sino que los permisos del fichero en realidad son una lista

de Entradas de Control de Acceso. Cada una de las ACE´s contiene lo

parámetros de usuario/grupo y permiso que indica un tipo de acceso

determinado para un usuario o grupo; el conjunto de todas éstas forman la ACL

que marca el tipo de acceso permitido en un fichero.

15

Page 16: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Editar el archivo fstab.

#pico /etc/fstab

Agregar la palabra opcion ACL en el punto de montaje. Debe quedar de la

siguiente forma:

# /etc/fstab: static file system information.## <file system> <mount point> <type> <options> <dump> <pass>proc /proc proc defaults 0 0/dev/sda1 / ext3 defaults,acl,errors=remount-ro 0 1/dev/sda5 none swap sw 0 0/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

Debemos remontar el punto de montaje “/” para que aplique los cambios.

#mount -o remount /

Para probar si los cambios fueron realizados, digitamos el siguiente comando.

#mount -l

Debe aparecer una línea parecida a ésta.

/dev/sda1 on / type ext3 (rw,acl,errors=remount-ro)

5.4 REPOSITORIOS

Para instalar los paquetes requeridos para realizar éste trabajo se deben utili-

zar los siguientes repositorios, los cuales habilitamos en el archivo sources.list

#pico /etc/apt/sources.list

Agregar los siguientes repositorios.

16

Page 17: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

# MDS repositorydeb http://mds.mandriva.org/pub/mds/debian etch main# Debian Volatiledeb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free# Debian Etch Backportsdeb http://www.backports.org/debian etch-backports main#OTROSdeb http://ftp.es.debian.org/debian/ etch main contrib non-freedeb ftp://ftp.us.debian.org/debian sarge main contrib non-free

Antes de actualizar la lista de repositorios, debemos pedir una llave de acceso

para poder descargar los paquetes Backports.

#wget -O - http://backports.org/debian/archive.key | apt-key add -

Luego se procede a actualizar la lista de repositorios.

#apt-get update

17

Page 18: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

5.5 INSTALACIÓN DE LOS PAQUETES A UTILIZAR

Se procede a instalar los siguientes paquetes para luego empezar a configurar

los respectivos archivos de configuración.

apt-get install mmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent python-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-network python-mmc-proxy python-mmc-samba postfix post-fix-ldap sasl2-bin libsasl2 libsasl2-modules amavisd-new libdbd-ldap-perl libnet-ph-perl libnet-snpp-perl libnet-telnet-perl lzop nomarch zoo clamav clamav-daemon gzip bzip2 unzip unrar-free unzoo arj spamassassin squirrelmail libnet-dns-perl razor pyzor dcc-client slapd ldap-utils libnss-ldap libpam-ldap dhcp3-server dhcp3-server-ldap bind9 samba smbclient smbldap-tools

En éste paso procedemos a realizar la configuración inicial del LDAP y el Post-

fix.

Digitar la contraseña para la base de datos LDAP “sena2008”.

18

Page 19: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Confirmamos la contraseña “sena2008”.

19

Page 20: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Seleccionamos “Aceptar”. Lo cual indica la versión del servicio DHCP y anuncia

que el servicio no será autorizado automáticamente.

Digitar el nombre del grupo de trabajo “GRUPO9”. Éste nombre trabaja como

un nombre Netbios.

20

Page 21: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Escoger la opción “<NO>”. Con esto damos la opción que no queremos

actualizaciones dinámicas para el Samba por parte del DHCP.

Se procede a la configuración inicial del servicio de Postfix “Aceptar”.

21

Page 22: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Escogemos la opción “Sitio de Internet”, con el fin de que nuestro servicio de

correo se vea a través de Internet, claro está, por medio de un dominio.

Digitar el nombre de correo “server1.grupo9.com”. Éste nombre indentifica

desde dónde se a originado el correo.

22

Page 23: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Identificado de Recuros para el Servidor LDAP. Digitar “ldap://127.0.0.1/”, con el

fin de contactar al LDAP por medio de dicha IP y pueda ser contactado.

Digitar el Nombre Distintivo (DN) “dc=grupo9,dc=com”, el cual será utilizado

para la base de búsqueda.

23

Page 24: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Vesión de LDAP a utilizar “3” Se debe utilizar la versión más reciente que esté

disponible.

Cuenta LDAP para root “cn=admin.,dc=grupo9,dc=com”. Con el fin de definir la

cuenta para el root, el cual tendrá todos lo privilegios para el LDAP.

24

Page 25: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Contraseña para la cuenta LDAP de root “sena2008”.

Éste mensaje indica que el archivo nsswitch.conf no se gestiona

automáticamente, por lo tanto, mas adelante debemos modificarlo

manualmente.

25

Page 26: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Make local root Database admin. “<No>”. Indica si solo el root puede ver la

base de datos del LDAP.

¿Hace falta un usuario para acceder a la base de datos LDAP? “<No>” Se

utiliza para permitir a otros usuarios acceder a la base de datos LDAP.

26

Page 27: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Ahora procedemos a instalar los paquetes del Dovecot (POP3 e IMAP).

#apt-get install -t etch-backports dovecot-common dovecot-imapd dovecot-pop3d

El comando “apt-get install -t” da la opción de copiar todas la fuentes de

argumento dentro del directorio; en éste caso copiará todas las fuentes del

direcorio etch-backport, el cual está especificado en la lista de repositorios.

6. CONFIGURACIONES

6.1 CONFIGURACIÓN DEL LDAP

Se procede copiar los el esquema del Mail, Samba, MMC, DNS, DHCP y

agregarlos al squema del LDAP.

#cp /usr/share/doc/python-mmc-base/contrib/ldap/mmc.schema /etc/ldap/schema/

#cp /usr/share/doc/python-mmc-base/contrib/ldap/mail.schema /etc/ldap/schema/

#zcat /usr/share/doc/python-mmc-base/contrib/ldap/samba.schema.gz >

/etc/ldap/schema/samba.schema

#zcat /usr/share/doc/python-mmc-base/contrib/ldap/dnszone.schema.gz >

/etc/ldap/schema/dnszone.schema

#zcat /usr/share/doc/python-mmc-base/contrib/ldap/dhcp.schema.gz >

/etc/ldap/schema/dhcp.schema

Debemos indicarle al LDAP que acepte los esquemas que acabamos de copiar,

para esto editamos el archivo sldap.conf.

#pico /etc/ldap/slapd.conf

De ésta forma, procedemos a incluir las listas de los esquemas que copiamos

anteriormente.

27

Page 28: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

include /etc/ldap/schema/mmc.schema

include /etc/ldap/schema/samba.schema

include /etc/ldap/schema/mail.schema

include /etc/ldap/schema/dnszone.schema

include /etc/ldap/schema/dhcp.schema

Sin embargo, debemos habilitar éstas líneas agregadas, por lo que debemos

incluri la siguiente línea debajo de éstas.

schemacheck on

Se debe cifrar la contraseña del Admin LDAP, ya que en el momento de la

instalación no se cifró. Esto se hace con el fin de darle seguridad a la clave de

acceso para el administrador. La contraseña se encripta en el formato SSHA.

#slappasswd -s sena2008

Deba aparecer algo parecido a esto.

{SSHA}lPd5OeiUGx4lyZUiQ2MFmzXV0JWyKV9A

Abrir el archivo de configuración del LDAP para agregar ésta clave encriptada.

#pico /etc/ldap/sldap.conf

Buscar la línea que dice rootdn, y descoméntela, de tal forma que quede así.

rootdn "cn=admin,dc=grupo9,dc=com"

Y Agrege debajo de ésta la linea rootpw junto con la clave del Admin LDAP

encriptada que originamos anteriormente.

rootpw {SSHA}lPd5OeiUGx4lyZUiQ2MFmzXV0JWyKV9A

Dentro del mismo archivo, buscar la siguiente opción.

index objectClass eq

Bórrela o coméntela y agregue las siguientes.

28

Page 29: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

index objectClass,uidNumber,gidNumber eq

index cn,sn,uid,displayName pres,sub,eq

index memberUid,mail,givenname eq,subinitial

index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq

index zoneName,relativeDomainName eq

index dhcpHWAddress,dhcpClassData eq

Debemos definir las listas de acceso que samba tendrá sobre el LDAP y los

respectiviso atributos de los usuarios. De ésta forma, buscamos y cambiamos

la línea que dice.

access to attrs=userPassword,shadowLastChange

Por ésta.

access to attrs=userPassword,sambaLMPassword,sambaNTPassword

El archive sldap.conf debe de quedar de ésta forma.

# This is the main slapd configuration file. See slapd.conf(5) for more# info on the configuration options.

######################################################################## Global Directives:

# Features to permit#allow bind_v2

# Schema and objectClass definitionsinclude /etc/ldap/schema/core.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/nis.schemainclude /etc/ldap/schema/inetorgperson.schemaincluye /etc/ldap/schema/mmc.schemainclude /etc/ldap/schema/samba.schemainclude /etc/ldap/schema/printer.schemainclude /etc/ldap/schema/mail.schemainclude /etc/ldap/schema/dnszone.schemainclude /etc/ldap/schema/dhcp.schemaschemacheck on

# Where the pid file is put. The init.d script# will not stop the server if you change this.pidfile /var/run/slapd/slapd.pid

29

Page 30: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

# List of arguments that were passed to the serverargsfile /var/run/slapd/slapd.args

# Read slapd.conf(5) for possible valuesloglevel 0

# Where the dynamically loaded modules are storedmodulepath /usr/lib/ldapmoduleload back_bdb

# The maximum number of entries that is returned for a search operationsizelimit 500

# The tool-threads parameter sets the actual amount of cpu's that is used# for indexing.tool-threads 1

######################################################################## Specific Backend Directives for bdb:# Backend specific directives apply to this backend until another# 'backend' directive occursbackend bdbcheckpoint 512 30

######################################################################## Specific Backend Directives for 'other':# Backend specific directives apply to this backend until another# 'backend' directive occurs#backend <other>

######################################################################## Specific Directives for database #1, of type bdb:# Database specific directives apply to this databasse until another# 'database' directive occursdatabase bdb

# The base of your directory in database #1suffix "dc=grupo9,dc=com"

# rootdn directive for specifying a superuser on the database. This is needed# for syncrepl.rootdn "cn=admin,dc=grupo9,dc=com"rootpw {SSHA}Lc4KZ36flCnEKGVJcVP/uJvCcW8Yg+7B

# Where the database file are physically stored for database #1directory "/var/lib/ldap"

30

Page 31: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

# For the Debian package we use 2MB as default but be sure to update this# value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0

# Sven Hartge reported that he had to set this value incredibly high# to get slapd running at all. See http://bugs.debian.org/303057# for more information.

# Number of objects that can be locked at the same time.dbconfig set_lk_max_objects 1500# Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500# Number of lockersdbconfig set_lk_max_lockers 1500

# Indexing options for database #1index objectClass,uidNumber,gidNumber eqindex cn,sn,uid,displayName pres,sub,eqindex memberUid,mail,givenname eq,subinitialindex sambaSID,sambaPrimaryGroupSID,sambaDomainName eqindex zoneName,relativeDomainName eqindex dhcpHWAddress,dhcpClassData eq

# Save the time that the entry gets modified, for database #1lastmod on

# Where to store the replica logs for database #1# replogfile /var/lib/ldap/replog

# The userPassword by default can be changed# by the entry owning it if they are authenticated.# Others should not be able to see it, except the# admin entry below# These access lines apply to database #1 onlyaccess to attrs=userPassword,sambaLMPassword,sambaNTPassword by dn="cn=admin,dc=grupo9,dc=com" write by anonymous auth by self write by * none

# Ensure read access to the base for things like# supportedSASLMechanisms. Without this you may# have problems with SASL not knowing what# mechanisms are available and the like.# Note that this is covered by the 'access to *'# ACL below too but if you change that as people# are wont to do you'll still need this if you# want SASL (and possible other things) to work # happily.access to dn.base="" by * read

31

Page 32: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

# The admin dn has full write access, everyone else# can read everything.access to * by dn="cn=admin,dc=grupo9,dc=com" write by * read

# For Netscape Roaming support, each user gets a roaming# profile for which they have write access to#access to dn=".*,ou=Roaming,o=morsnet"# by dn="cn=admin,dc=grupo9,dc=com" write# by dnattr=owner write

######################################################################## Specific Directives for database #2, of type 'other' (can be bdb too):# Database specific directives apply to this databasse until another# 'database' directive occurs#database <other>

# The base of your directory for database #2#suffix "dc=debian,dc=org"

De igual forma, se debe editar el archivo de configuración ldap.conf, con el fin

de especificarle al LDAP la IP y el nombre de dominio con que se quiere que

trabaje.

#pico /etc/ldap/ldap.conf

Agregamos las siguientes líneas al final del archivo.

host 127.0.0.1base dc=example,dc=com

Reiniciamos el servidor LDAP para que aplique los cambios efectuados.

#/etc/init.d/sldap restart

32

Page 33: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

6.2 CONFIGURACIÓN DE SAMBA

Proceder a configurar el servidor Samba, ya que el LDAP necesita de éste para

poder almacenar los usuarios, password, entre otros, además para poder

integrar las redes de Linux con las de Microsoft.

Primero debemos parar el servicio.

#/etc/init.d/samba stop

Para integrar el servidor Samba con el LDAP debemos copiar el archivo

smb.conf del LDAP y pegarlo en directorio de Samba. Éste archivo es ofrecido

por las librerías del python-mmc-base, las cuales fueron instaladas

anteriormente, dichas librerías se encuentran en la siguiente ruta ya que al

momento de la inatalación se ubican en /usr/share/doc/.

#cp /usr/share/doc/python-mmc-base/contrib/samba/smb.conf /etc/samba/

De ésta forma, editar el archivo de configuración smb.conf.

#pico /etc/samba/smb.conf

En la sección [Global] se deben modificar las siguientes líneas, de tal forma

que se parezcan a éstas.

workgroup = GRUPO9

netbiosname = SRV-GRUPO9

ldap admin dn = cn=admin,dc=grupo9,dc=com

ldap suffix = dc=grupo9,dc=com

logon path = \\%N\profiles\%U

33

Page 34: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Adicionalmente, en la sección [Global], agregar las siguientes líneas, ya que no

vienen por defecto en el archivo smb.conf del LDAP. Estas líneas representan

el soporte y la integración que el Samba tendrá sobre el LDAP.

preferred master = yes

os level = 65

wins support = yes

timeserver = yes

socket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192

SO_RCVBUF=8192

logon drive = H:

passwd program = /usr/sbin/smbldap-passwd -u %u

passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new

password*" %n\n

add user script = /usr/sbin/smbldap-useradd -m "%u"

add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"

set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"

add group script = /usr/sbin/ambldap-groupadd -p "%g"

delete user script = /usr/sbin/smbldap-userdel "%u"

delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"

delete group script = /usr/sbin/smbldap-groupdel "%g"

obey pam restrictions = no

ldap idmap suffix = ou=Users

ldap delete dn = no

security = user

En la sección [homes], agregar la siguiente línea. Con ésta línea le estamos

dando la opción al Samba que oculte el Maildir (Buzón) de cada usuario.

hide files = /Maildir/

En la sección [profiles], agregar la siguiente línea, con el fin de que los archivos

de Samba estén ocultos.

34

Page 35: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

hide files = /desktop.ini/ntuser.ini/NTUSER.*/

En la sección [archives], editar la siguiente línea, de ésta forma especificamos

la ruta de los archivos del samba, los cuales estarán ocultos por la opción que

le dimos en el paso anterior.

path = /home/samba/archives

Además, agregar al final del archivo smb.conf el siguiente bloque [partage] que

no viene por defecto. Esto es si queremos, ya que éste bloque no afecta para

nada la configuración; simplemente se utiliza para publicar algunos servicios.

[partage] comment = aucun path = /home/samba/partage browseable = yes public = no writeable = yes

El archivo de configuración smb.conf debe quedar de ésta forma.

[global]preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192

SO_RCVBUF=8192logon drive = H:passwd program = /usr/sbin/smbldap-passwd -u %upasswd chat = "Cambiando clave para*\nNueva clave*" %n\n "*Confirme

nueva clave*" %n\nadd user script = /usr/sbin/smbldap-useradd -m "%u"add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"add group script = /usr/sbin/ambldap-groupadd -p "%g"delete user script = /usr/sbin/smbldap-userdel "%u"delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"delete group script = /usr/sbin/smbldap-groupdel "%g"obey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = nosecurity = user

35

Page 36: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

workgroup = GRUPO9 netbiosname = SRV-GRUPO9 server string = Mandriva Directory Server - SAMBA %v log level = 3 null passwords = yes # unix charset = ISO8859-1

name resolve order = bcast hostdomain logons = yesdomain master = yesprinting = cupsprintcap name = cupslogon path = \\%N\profiles\%ulogon script = logon.batmap acl inherit = yesnt acl support = yes

force unknown acl user = Yespassdb backend = ldapsam:ldap://127.0.0.1/ldap admin dn = cn=admin,dc=grupo9,dc=comldap suffix = dc=grupo9,dc=comldap group suffix = ou=Groupsldap user suffix = ou=Usersldap machine suffix = ou=Computers

ldap idmap suffix = ou=Idmap idmap backend = ldap:ldap://127.0.0.1/ idmap uid = 20000-30000 idmap gid = 20000-30000

enable privileges = yesadd machine script = /usr/lib/mmc/add_machine_script '%u'add share command = /usr/lib/mmc/add_change_share_scriptdelete share command = /usr/lib/mmc/delete_share_scriptadd printer command = /usr/lib/mmc/add_printer_scriptdeleteprinter command = /usr/lib/mmc/delete_printer_script

[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = /Maildir/ path = /home/samba/archives

[public] comment = Public share path = /home/samba/shares/public browseable = yes public = yes writeable = yes

36

Page 37: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

[archives] comment = Backup share path = /home/archives browseable = yes public = no writeable = no

[printers] comment = All printers path = /var/spool/samba public = yes guest ok = yes browseable = no writeable = no printable = yes

[print$] comment = Printer Driver Download Area path = /var/lib/samba/printers browseable = no guest ok = yes read only = yes write list = Administrador,root,@lpadmin force group = "Print Operators" create mask = 0775 directory mask = 0775

[netlogon] path = /home/samba/netlogon public = no writeable = no browseable = no

[profiles] path = /home/samba/profiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = /desktop.ini/ntuser.ini/NTUSER.*/

[partage] comment = aucun path = /home/samba/partage browseable = yes public = no writeable = yes

37

Page 38: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Digitar el siguiente comando con el fin de obtener un sumario de la

configuración de Samba. Al final del sumario no debe presentar errores.

#testparm

Se procede a darle las credenciales a Samba para que pueda escribir sobre

LDAP.

#smbpasswd -w sena2008

Debe aparecer algo como esto, lo cual indica que las credenciales fueron

asignadas correctamente.

Setting stored password for "cn=admin,dc=grupo9,dc=com" in secrets.tdb

Debemos genera un SID para el grupo de trabajo, con el fin de que el LDAP

reconozca y autorice al Samba con éste identificador.

#net getlocalsid GRUPO9

Debe mostrarnos al final algo como esto. No perdamos éste SID, ya que más

adelante lo debemos utilizar.

SID for domain GRUPO9 is: S-9-5-21-3159899829-923882392-54889933

Para comprobar que el SID fue registrado por el LDAP, digitamos el siguiente

comando.

#slapcat | grep sambaDomainName

Lo más probable es que aparezcan algunas líneas de error, lo cual es normal.

Lo que nos debe interesar es que aparezcan las siguientes líneas.

38

Page 39: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

dn: sambaDomainName=GRUPO9,dc=grupo9,dc=com

sambaDomainName: GRUPO9

Luego se procede a iniciar el servicio Samba.

#/etc/init.d/samba start

Debemos crear los archivos de configuración de smbldap-tools

(smbldap_bind.conf, smbldap.conf), los cuales definen la forma de comunicarse

el Samba con el LDAP.

#pico /etc/smbldap-tools/smbldap_bind.conf

El archivo debe llevar el siguiente contenido.

slaveDN="cn=admin,dc=grupo9,dc=com"slavePw="sena2008"masterDN="cn=admin,dc=grupo9,dc=com"masterPw="sena2008"

Ahora procedemos crear el archivo smbldap.conf. El contenido de éste debe

llevar los siguiente (En la línea SID debemos poner nuestro SID, el cual

generamos anteriormente).

SID=" S-9-5-21-3159899829-923882392-54889933"sambaDomain="GRUPO9"ldapTLS="0"suffix="dc=grupo9,dc=com"usersdn="ou=Users,${suffix}"computersdn="ou=Computers,${suffix}"groupsdn="ou=Groups,${suffix}"idmapdn="ou=Idmap,${suffix}"sambaUnixIdPooldn="sambaDomainName=GRUPO9,${suffix}"scope="sub"hash_encrypt="SSHA"userLoginShell="/bin/bash"userHome="/home/%U"userHomeDirectoryMode="700"userGecos="System User"defaultUserGid="513"

39

Page 40: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

defaultComputerGid="515"skeletonDir="/etc/skel"defaultMaxPasswordAge="45"userSmbHome="\\PDC-SRV-GRUPO9\%U"userProfile="\\PDC-SRV-GRUPO9\profiles\%U"userHomeDrive="H:"userScript="logon.bat"mailDomain="grupo9.com"smbpasswd="/usr/bin/smbpasswd"

Procedemos a poblar la base de datos LDAP y a crear la cuenta de

Administrator en el dominio Administrator. Al final no pedirá la contraseña del

Administrator, la cual será “sena2008”.

#smbldap-populate -m 512 -a Administrator

Se procede a cambiar el número UID de la cuenta, de lo contrario el

Administrator no podrá utilizar el servidor de correos con ésta cuenta, además

se debe agregar el usuario Administrador al grupo “Domain Users”.

#smbldap-usermod -u 3000 -G "Domain Users" Administrator

Editar el archivo nsswitch.conf, para luego poder visualizar los usuarios y

grupos del LDAP.

#pico /etc/nsswitch.conf

El archivo debe tener el siguiente contenido.

# /etc/nsswitch.conf## Example configuration of GNU Name Service Switch functionality.# If you have the `glibc-doc' and `info' packages installed, try:# `info libc "Name Service Switch"' for information about this file.passwd: compat ldapgroup: compat ldapshadow: compat ldaphosts: files dnsnetworks: filesprotocols: db files

40

Page 41: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

services: db filesethers: db filesrpc: db filesnetgroup: nis

Para comprobar si está en buen funcionamiento, digitamos el siguiente

comando.

#getent group

Debemos cerciorarnos de que al final aparezca algo como esto, lo cual indica

que está visualizando la base de datos LDAP.

Domain Admins:*:512:Domain Users:*:513:Administrator,mauro,fefe,jonaDomain Guests:*:514:Domain Computers:*:515:Administrators:*:544:Account Operators:*:548:Print Operators:*:550:Backup Operators:*:551:Replicators:*:552:

Posible Fallo: Si no aparecen las anteriores lìneas, debemos editar

los archivos libnss-ldap y libpam-ldap.

#pico /etc/libnss-ldap.conf

Buscamos las siguientes lineas y las descomentamos. En dichas lìneas

digitaremos los valores correspondientes a nuestro dominio y unidad

orgainizativa.

nss_base_passwd ou=users,dc=grupo9,dc=com

nss_base_group ou=groups,dc=grupo9,dc=com

41

Page 42: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Editar el siguiente archivo en donde estableceremos el nombre de dominio y

unidades organizativas para los usuarios y grupos. Se deben descomentar.

#pico /etc/pam_ldap.conf

Las lìneas deben quedar de la siguiente forma.

nss_base_passwd ou=users,dc=grupo9,dc=com?one

nss_base_shadow ou=users,dc=grupo9,dc=com?one

nss_base_group ou=groups,dc=grupo9,dc=com?one

Luego se deben reconfigurar el paquete libnss-ldap ylibpam-ldap para que se

apliquen los cambios efectuado en los dos archivos de configuración

anteriores.

#dpkg-reconfigure libnss-ldap

Establecer los valores pertenecientes a nuestro nombre de dominio.

#dpkg-reconfigure libpam-ldap

Establecer los valores pertenecientes a nuestro dominio.

Volver a probar la configuración del nsswitch con el comando tesparm.

Ahora debemos crear unos directorios que Samba necesita para alojar sus

archivos. Dichos directorios fueron los bloques que están descritos en el

archivo smb.conf.

42

Page 43: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

#mkdir -p /home/samba/shares/public/

#mkdir /home/samba/netlogon/

#mkdir /home/samba/profiles/

#mkdir /home/samba/partage/

#mkdir /home/samba/archives/

Se debe reiniciar el Samba para que se apliquen los cambios con respecto a

los directorios creados.

#/etc/init.d/samba restart

Algunas veces, al reiniciar más adelante la MMC presenta errores, por esto

debemos crear un directorio adicional “archives” en “/home/”.

#mkdir /home/archives

A los directorios creados en el paso anterior, debemos de darle los permisos

específicos, para que Samba pueda tener derechos sobre dichos directorios.

#chown -R :"Domain Users" /home/samba/

#chmod 777 /var/spool/samba/ /home/samba/shares/public/

#chmod 755 /home/samba/netlogon/

#chmod 770 /home/samba/profiles/ /home/samba/partage/

#chmod 700 /home/samba/archives/

6.3 Configuración del PAM LDAP.

Ahora, debemos agregar el módulo del LDPA al PAM. Los cuales serán

utilizados para la autenticación contra el LDAP. Específicamente los archivos

que se modifican son: common-account, common-auth, common-password,

common-session.

Editar el archivo common-account.

43

Page 44: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

#pico /etc/pam.d/common-account

El archivo debe quedar de la siguiente forma.

## /etc/pam.d/common-account - authorization settings common to all services## This file is included from other service-specific PAM config files,# and should contain a list of the authorization modules that define# the central access policy for use on the system. The default is to# only deny service to users whose accounts are expired in /etc/shadow.#account required pam_unix.soaccount sufficient pam_ldap.so

Editar el archivo common-auth.

#pico /etc/pam.d/common-auth

El archivo debe quedar de la siguiente forma.

## /etc/pam.d/common-auth - authentication settings common to all services## This file is included from other service-specific PAM config files,# and should contain a list of the authentication modules that define# the central authentication scheme for use on the system# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the# traditional Unix authentication mechanisms.#auth sufficient pam_unix.so nullok_secureauth sufficient pam_ldap.so use_first_passauth required pam_deny.so

Editar el archivo common-password.

#pico /etc/pam.d/common-password

El archivo debe quedar de la siguiente forma.

#

44

Page 45: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

# /etc/pam.d/common-password - password-related modules common to all services## This file is included from other service-specific PAM config files,# and should contain a list of modules that define the services to be#used to change user passwords. The default is pam_unix# The "nullok" option allows users to change an empty password, else# empty passwords are treated as locked accounts.## (Add `md5' after the module name to enable MD5 passwords)## The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in# login.defs. Also the "min" and "max" options enforce the length of the# new password.password sufficient pam_unix.so nullok obscure min=4 max=8 md5password sufficient pam_ldap.so use_first_pass use_authtokpassword required pam_deny.so# Alternate strength checking for password. Note that this# requires the libpam-cracklib package to be installed.# You will need to comment out the password line above and# uncomment the next two in order to use this.# (Replaces the `OBSCURE_CHECKS_ENAB', `CRACKLIB_DICTPATH')## password required pam_cracklib.so retry=3 minlen=6 difok=3# password required pam_unix.so use_authtok nullok md5

Editar el archivo common-session.

#pico /etc/pam.d/common-session

El archivo debe quedar de la siguiente forma.

## /etc/pam.d/common-session - session-related modules common to all services## This file is included from other service-specific PAM config files,# and should contain a list of modules that define tasks to be performed# at the start and end of sessions of *any* kind (both interactive and# non-interactive). The default is pam_unix.#session required pam_unix.sosession optional pam_ldap.so

Para que estos cambios realizados, debemos reiniciar nuestro sistema.

#reboot

45

Page 46: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Luego de haber iniciado el sistema, debemos darle derecho al grupo “Domain

Admins” de agregar máquinas al dominio.

#net -U Administrator rpc rights grant 'GRUPO9\Domain Admins'

SeMachineAccountPrivilege

6.4 Configuración DNS (BIND9)

Procedemos a configurar el servicio DNS.

#cp /usr/share/doc/python-mmc-base/contrib/bind/named.conf /etc/bind/

Ahora debemos especificarle al sistema que en la secuencia de inicio “rc.d”

inicie primero el Sldap y luego el BIND.

#update-rc.d -f slapd remove && update-rc.d slapd start 14 2 3 4 5 . stop 86 0 1 6 .

Debemos especificar en la tarjeta de red que seamos nuestro propio registro

DNS.

#pico /etc/resolv.conf

El archivo debe quedar de la siguiente forma.

search grupo9.comnameserver 127.0.0.1nameserver 192.168.0.19

6.5 Configuración DHCP

Procedemos a configurara el servicio DHCP.

#cp /usr/share/doc/python-mmc-base/contrib/dhcpd/dhcpd.conf /etc/dhcp3/

46

Page 47: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Editar el archivo dhcpd.conf.

#pico /etc/dhcp3/dhcpd.conf

El contenido del archivo debe quedar de la siguiente forma.

ldap-server "localhost";ldap-port 389;ldap-username "cn=admin, dc=grupo9, dc=com";ldap-password "sena2008";ldap-base-dn "dc=grupo9, dc=com";ldap-method dynamic;ldap-debug-file "/var/log/dhcp-ldap-startup.log";

6.6 SSL Para El Correo (Entidad Certificadora).

Se debe instalar una entidad certificadora para obtener los respectivos

certificados y llaves para la seguridad de nuestros dos sitios Web: MMC,

Squirrelmail.

Debemos editar el archivo mail.cnf.

#pico /etc/ssl/mail.cnf

El archivo debe llevar el siguiente contenido.

[ req ] default_bits = 2048 default_keyfile = privkey.pem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ]countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = IT

47

Page 48: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

commonName = server1.grupo9.comemailAddress = [email protected][ server_cert ] basicConstraints = critical, CA:FALSE subjectKeyIdentifier = hash keyUsage = digitalSignature, keyEncipherment extendedKeyUsage = serverAuth, clientAuth nsCertType = server nsComment = "mailserver"

Ahora, debemos crear el certificado SSL.

#openssl req -x509 -new -config /etc/ssl/mail.cnf -out /etc/ssl/certs/mail.pem -keyout

/etc/ssl/private/mail.key -days 365 -nodes -batch

Especificar los derechos de la llave, de tal forma que solo el root pueda leerlo.

#chmod 600 /etc/ssl/private/mail.key

6.7 Configuración SASL

Postfix autenticará los usuarios contra la base de datos LDAP. Procedemos a

crear el directorio saslauthd. En éste directorio se almacenará unos archivos,

los cuales permiten la autenticación del Postfix contra el LDAP.

#mkdir -p /var/spool/postfix/var/run/saslauthd/

Editar el archivo saslauthd, el cual debe quedar de la siguiente forma.

START=yesMECHANISMS="ldap"MECH_OPTIONS=""THREADS=5OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

Luego, editar el archivo saslauthd.conf con el fin de indicarle a SASL contra

quién va a realizar la autenticación.

48

Page 49: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

#pico /etc/saslauthd.conf

Debe quedar de la siguiente forma.

ldap_servers: ldap://127.0.0.1ldap_search_base: ou=Users,dc=grupo9,dc=comldap_filter: (&(objectClass=mailAccount)(mail=%u@%r)(mailenable=OK))

Debemos crear el archivo smtpd.conf con el fin de indicarle a Postfix cuál va a

hacer el método de autenticación.

#pico /etc/postfix/sasl/smtpd.conf

El contenido de éste archivo debe llevar lo siguiente.

pwcheck_method: saslauthdmech_list: plain login

Ahora, para que la autenticación se correcta, debemos crear el usuario postfix y

agregarlo al grupo sasl.

#adduser postfix sasl

Debemos reiniciar SASL para que aplique los cambios efectuados.

#/etc/init.d/saslauthd restart

49

Page 50: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

6.8 Configuración Postfix

Copiamos los archivo del Postifx con el fin de poder trabajar con lo Usuarios y

Dominios virtuales.

#cp /usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-domain/* /etc/postfix/

Editamos el archivo main.cf para modificar el dominio al que Postfix atenderá,

usuarios y dominios virtuales, entre otros.

#pico /etc/postfix/main.cf

El archivo debe quedar de la siguiente forma.

Nota: Recomendamos que copien cada una de las líneas que se

representa a continuación, de tal forma que quede como se muestra a

continuación.

# See /usr/share/postfix/main.cf.dist for a commented, more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)biff = no

# appending .domain is the MUA's job.append_dot_mydomain = yesappend_at_myorigin = yes

# Uncomment the next line to generate "delayed mail" warnings#delay_warning_time = 4h

myhostname = server1.grupo9.commydomain = grupo9.comalias_maps = ldap:/etc/postfix/ldap-aliases.cf, hash:/etc/aliasesalias_database = hash:/etc/aliasesmyorigin = /etc/mailnamemydestination = server1.grupo9.com,grupo9.com,localhost.localdomain,localhostmail_destination_recipient_limit = 1mailbox_command = /usr/lib/dovecot/deliver -d "$USER"@"$DOMAIN"relayhost = mynetworks = 127.0.0.0/8mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all

50

Page 51: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

# Virtual Domains Controlvirtual_mailbox_domains = ldap:/etc/postfix/ldap-domains.cfvirtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cfvirtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf, ldap:/etc/postfix/ldap-maildrop.cfvirtual_mailbox_base = /virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldap:/etc/postfix/ldap-uid.cfvirtual_gid_maps = ldap:/etc/postfix/ldap-gid.cf

# Use Maildirhome_mailbox = Maildir/

# Wait until the RCPT TO command before evaluating restrictions smtpd_delay_reject = yes

# Basics Restrictions smtpd_helo_required = yes strict_rfc821_envelopes = yes

# Requirements for the connecting server smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.njabl.org, reject_rbl_client cbl.abuseat.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client list.dsbl.org, permit

# Requirements for the HELO statement smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_invalid_hostname, permit

# Requirements for the sender address smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain, permit

# Requirement for the recipient address smtpd_recipient_restrictions = permit_mynetworks,

51

Page 52: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, permit

# Enable SASL authentication for the smtpd daemon smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth

# Fix for outlookbroken_sasl_auth_clients = yes

# Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =

# SSL/TLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1 smtpd_tls_cert_file = /etc/ssl/certs/mail.pem smtpd_tls_key_file = /etc/ssl/private/mail.keysmtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache

# Amaviscontent_filter = amavis:[localhost]:10024receive_override_options = no_address_mappings

Editar el archivo ldap.aliases.cf con el fin de definir los álias del LDAP en el

Postfix.

#pico /etc/postfix/ldap-aliases.cf

Se debe editar simplemente el dominio con que se está trabajando.

server_host = 127.0.0.1search_base = ou=Users,dc=grupo9,dc=comquery_filter = (&(objectClass=mailAccount)(mailalias=%s)(mailenable=OK))result_attribute = maildropversion = 3

Debemos editar el archivo master.cf en donde se definen qué protocolos y con

qué servicio adicionales trabajará postfix.

52

Page 53: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

#pico /etc/postfix/master.cf

Al final del archivo, agregar las siguientes líneas de configuración.

# SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes

# Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecot:mail argv=/usr/lib/dovecot/deliver -d $recipient

# Mail to Amavisamavis unix - - - - 10 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20

# Mail from Amavis127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

Debemos de configurar los archivos ldap-accounts, ldap-aliases, ldap-domains,

ldap-gid, ldap-maildrop, ldap-transport, ldap-uid con el fin de habilitar el uso de

los usuarios y dominios virtuales.

#pico /etc/postfix/ ldap-accounts

53

Page 54: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

server_host = 127.0.0.1server_port = 389search_base = ou=Users,dc=grupo9,dc=comquery_filter = (&(objectClass=mailAccount)(mailenable=OK)(mail=%s))result_attribute = mailboxversion = 3expansion_limit = 1

#pico /etc/postfix/ ldap-aliases

server_host = 127.0.0.1search_base = ou=Users,dc=grupo9,dc=comquery_filter = (&(objectClass=mailAccount)(mailalias=%s)(mailenable=OK))result_attribute = mailversion = 3

#pico /etc/postfix/ ldap-domains

server_host = 127.0.0.1server_port = 389search_base = ou=mailDomains,dc=mandriva,dc=comquery_filter = (&(objectClass=mailDomain)(virtualdomain=%s))result_attribute = virtualdomainversion = 3

#pico /etc/postfix/ ldap-gid

server_host = 127.0.0.1server_port = 389search_base = ou=Users,dc=grupo9,dc=comquery_filter = (&(objectClass=mailAccount)(mail=%s)(mailenable=OK))result_attribute = gidNumberversion = 3expansion_limit = 1

#pico /etc/postfix/ ldap-maildrop

server_host = 127.0.0.1server_port = 389search_base = ou=Users,dc=grupo9,dc=comquery_filter = (&(objectClass=mailAccount)(mailenable=OK)(mail=%s))result_attribute = maildropversion = 3

#pico /etc/postfix/ ldap-transport

server_host = 127.0.0.1server_port = 389search_base = ou=Users,dc=grupo9,dc=comquery_filter = (&(objectClass=mailAccount)(mailenable=OK)(mail=%s))result_attribute = mailhost

54

Page 55: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

result_format = smtp:[%s]version = 3

#pico /etc/postfix/ ldap-uid

server_host = 127.0.0.1server_port = 389search_base = ou=Users,dc=grupo9,dc=comquery_filter = (&(objectClass=mailAccount)(mail=%s)(mailenable=OK))result_attribute = uidNumberversion = 3expansion_limit = 1

Debemos reiniciar el Postfix para que se apliquen los cambios efectuados.

#/etc/init.d/postfix restart

6.9 Configuración de Dovecot

Debemos borrar todo el contenido del archivo dovecot.conf ya que éste no nos

sirve para lo que queremos realizar.

#echo "" > /etc/dovecot/dovecot.conf

Procedemos a editar dicho archivo, que debería estar completamente en

blanco.

#pico /etc/dovecot/dovecot.conf

El archivo debe quedar de ésta forma, en donde se debe especificar el dominio,

entre otras cosas.

protocols = imap imaps pop3 pop3s listen = 0.0.0.0login_greeting = grupo9.com mailserver ready. mail_location = maildir:~/Maildirdisable_plaintext_auth = nossl_cert_file = /etc/ssl/certs/mail.pem ssl_key_file = /etc/ssl/private/mail.keylog_path = /var/log/dovecot.log

55

Page 56: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

info_log_path = /var/log/dovecot.log

# IMAP configurationprotocol imap { mail_plugins = quota imap_quota}

# POP3 configurationprotocol pop3 { pop3_uidl_format = %08Xu%08Xv mail_plugins = quota} # LDA configuration protocol lda { postmaster_address = postmaster auth_socket_path = /var/run/dovecot/auth-master mail_plugins = quota } # LDAP authentication auth default { mechanisms = plain login passdb ldap { args = /etc/dovecot/dovecot-ldap.conf } userdb ldap { args = /etc/dovecot/dovecot-ldap.conf } socket listen { master { path = /var/run/dovecot/auth-master mode = 0660 user = dovecot group = mail }

client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } }}

56

Page 57: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Dejamos en blanco el archivo dovecot-ldap.conf.

#echo "" > /etc/dovecot/dovecot-ldap.conf

Procedemos a editarlo.

#pico /etc/dovecot/dovecot-ldap.conf

Debemos agregar las siguientes líneas, en donde se debe especificar el

dominio, entre otras cosas.

hosts = 127.0.0.1auth_bind = yesldap_version = 3base = dc=grupo9,dc=comscope = subtreeuser_attrs = homeDirectory=home,uidNumber=uid,mailbox=mail,mailuserquota=quota=maildir:storageuser_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK))pass_attrs = mail=user,userPassword=passwordpass_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail

Ahora debemos ajustar los derechos para poder autorizar a Dovecot, con el fin

de que éste pueda utilizar los derechos UID y GID cuando se almacena el

mensaje en el Maildir de cada usuario.

# dpkg-statoverride --update --add root dovecot 4755 /usr/lib/dovecot/deliver

Reiniciamos el servicio Dovecot.

# /etc/init.d/dovecot restart

57

Page 58: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

6.10 Configuración de Amavis.

Se configurará con el fin de que el Postfix pase los correos a Amavis. Éste, de

igual forma lo pasará a Sapamassassin y a CalmAV para que realicen el

respectivo escaneo contra spam y contra antivirus. Luego de haber aprobado el

mensaje por parte del servicio Amavis, éste debe reinyectar el mensaje a

Postfix.

Definir los filtros que utilizará Amavis en el archivo 15-content_filter_mode.

#pico /etc/amavis/conf.d/15-content_filter_mode

Se deben descomentar las siguientes líneas, si se desea, se puede borrar todo

el contenido de éste archivo de tal forma que sólo queden las siguientes líneas.

use strict;@bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);@bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);1;

Editar el archivo 50-user.

#pico /etc/amavis/conf.d/50-user

El archivo debe ser parecido a esto.

use strict;$pax='pax';1;

Se debe crear el usuario clamav y agregarlo al grupo amavis.

#adduser clamav amavis

58

Page 59: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Editar el archivo 05-domain_id para especificar el dominio con que trabajará

Amavis.

#pico /etc/amavis/conf.d/05-domain_id

Debe se parecido a esto.

use strict;

#chomp($mydomain = `head -n 1 /etc/mailname`);chomp($mydomain = `grupo9.com`);

@local_domains_acl = ( ".$mydomain" );

1; # insure a defined return

Editar el archivo 20-debian_defaults, con el fin de definir el etiquetado los virus,

spam y los niveles que Amavis utilizará para etiquetar a éstos.

#pico /etc/amavis/conf.d/20-debian_defaults

Debemos asegurarnos que las siguientes líneas estén parecidas a éstas.

Nota: La plabra ***SPAM*** aparecerá delante del asunto del mensaje

en el caso de que sea un spam. Si todos los mensajes que recibimos o

enviamos los detecta como spam, debemos aumentar los niveles que están en

éste archivo.

$sa_spam_subject_tag = '***SPAM*** ';$sa_tag_level_deflt = 0.2; # add spam info headers if at, or above that level$sa_tag2_level_deflt = 0.2; # add 'spam detected' headers at that level$sa_kill_level_deflt = 0.1; # triggers spam evasive actions$sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent

$forward_method = 'smtp:127.0.0.1:10025';$notify_method = $forward_method;$final_virus_destiny = D_DISCARD; # (data not lost, see virus quarantine)$final_banned_destiny = D_BOUNCE; # D_REJECT when front-end MTA$final_spam_destiny = D_PASS;$final_bad_header_destiny = D_PASS; # False-positive prone (for spam)

59

Page 60: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Reiniciar los servicios amavis, clamav-daemon, clamav-freshclam para que se

apliquen los cambios efectuados.

#/etc/init.d/amavis restart

#/etc/init.d/clamav-daemon restart

#/etc/init.d/clamav-freshclam restart

6.11 Configuración Spamassassin

Se edita el archivo local.cf en donde se definirá el nivel de escaneo y las bases

de datos que se utilizarán.

#pico /etc/spamassassin/local.cf

Debemos asegurarnos que las siguientes líneas estén descomentadas.

Nota: Si los mensajes que recibimos o enviamos los detecta a todos

como spam, debemos aumentar el score.

rewrite_header Subject *****SPAM*****report_safe 1required_score 0.3

Dentro del mismo archivo, agregar las siguientes líneas, las cuales son las ba-

ses de datos que contienen el listado de los spam. Estas bases de datos se en-

cuentran ubicadas en Internet.

# dccuse_dcc 1dcc_path /usr/bin/dccproc

#pyzoruse_pyzor 1pyzor_path /usr/bin/pyzor

#razoruse_razor2 1razor_config /etc/razor/razor-agent.conf

#bayesuse_bayes 1

60

Page 61: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

use_bayes_rules 1bayes_auto_learn 1

Habilitar los plugin de Spamassassin, para esto debemos editar el archivo

v310.pre.

#pico /etc/spamassassin/v310.pre

Asegurarse que las siguientes estén descomentadas.

loadplugin Mail::SpamAssassin::Plugin::DCCloadplugin Mail::SpamAssassin::Plugin::Pyzorloadplugin Mail::SpamAssassin::Plugin::Razor2loadplugin Mail::SpamAssassin::Plugin::SpamCoploadplugin Mail::SpamAssassin::Plugin::AWLloadplugin Mail::SpamAssassin::Plugin::AutoLearnThresholdloadplugin Mail::SpamAssassin::Plugin::WhiteListSubjectloadplugin Mail::SpamAssassin::Plugin::MIMEHeaderloadplugin Mail::SpamAssassin::Plugin::ReplaceTags

Se debe configurar Spamassassin de modo que se ejecute como demonio,

editando el archivo spamassassin.

#pico /etc/default/spamassassin

El archivo debe ser parecido al siguiente.

ENABLED=1OPTIONS="--create-prefs --max-children 5 --helper-home-dir"PIDFILE="/var/run/spamd.pid"#NICE="--nicelevel 15"CRON=0

Para que se apliquen los cambios efectuados, se debe reiniciar Spamassassin

y Amavis.

#/etc/init.d/spamassassin start

#/etc/init.d/amavis restart

61

Page 62: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

6.12 Cetificados SSL

Se procede a darle seguridad a la consola MMC y al Squirrelmail. Para esto se

debe crear el directorio ssl dentro de apache2.

#mkdir /etc/apache2/ssl/

Pedimos el certificado para la MMC.

#openssl req -new -x509 -keyout /etc/apache2/ssl/server.key –out

/etc/apache2/ssl/server.crt -days 365 -nodes

Debemos de darle permisos a la llave server.key, con el fin que solo el root

pueda realizar acción sobre ella.

#chmod 600 /etc/apache2/ssl/server.key

Pedimos el certificado para el Webmail Squirrelmail.

#openssl req -new -x509 -keyout /etc/apache2/ssl/webmail.key –out

/etc/apache2/ssl/webmail.crt -days 365 -nodes

Debemos de darle permisos a la llave webmail.key.

#chmod 600 /etc/apache2/ssl/webmail.key

6.13 Configuraciòn Sitio Web MMC

Se debe tener claro, que para éste caso trabajaremos con Host Virtuales (Un

Vhost para la MMC y otro para el Squirremail).

Crear el sitio Web mmc, el cual cumplirá la función de redireccionar a mmcs

(De forma segura).

62

Page 63: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

#pico /etc/apache2/sites-available/mmc

Éste sitio debe contener las siguientes líneas.

<VirtualHost *:80>

ServerName server1.grupo9.com

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://server1.grupo9.com/mmc

</VirtualHost>

Creamos el sitio Web mmcs.

#pico /etc/apache2/sites-available/mmcs

Éste sitio debe contener las siguientes líneas.

NameVirtualHost *:443

<VirtualHost *:443>

ServerName server1.grupo9.com ServerAdmin [email protected] DocumentRoot /usr/share/mmc/

SSLEngine on SSLCertificateKeyFile ssl/server.key SSLCertificateFile ssl/server.crt SSLProtocol all SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

<Directory /usr/share/mmc/> AllowOverride None Order allow,deny Allow from all php_flag short_open_tag on SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128 </Directory>

ErrorLog /var/log/apache2/mmc_error.log

63

Page 64: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

CustomLog /var/log/apache2/mmc_access.log combined LogLevel warn

</VirtualHost>

64

Page 65: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

6.14 Configuración Sitio Web Squirremail

Por defecto, cuando se instala Squirrelmail, éste instala su sitio web escrito en

php, el cual se encuentra en la ruta con el nombre de apache.conf

/usr/share/squirrelmail/config/apache.conf Si deseamos configurar de forma

básica el Squirrelmail, simplemente realizamos un enlace entre éste sitio y el

apache2.

#ln -s /usr/share/squirrelmail/config/apache.conf /etc/apache2/conf.d/apache.conf

Reiniciamos el apache2 para que se apliquen los cambios.

#/etc/init.d/apache2 restart

De éste modo se puede acceder al Squirrelmail via Web digitando en nuestro

navegador localhost.

Forma Segura (SSL) Se procede a configurar el webmail Squirrelmail

de forma segura.

Crear el sitio Web webmail, el cual cumplirá la función de redireccionar a

webmails (De forma segura). Algo que se debe tener en cuenta, es que si

tenemos configurado el Squirrelmail de forma básica, simplemente debemos

elimnar el archivo /etc/apache2/conf.d/apache2 para que entren en conflicto

con el sitio del Squirrelmail que será configurado en /etc/apache2/sites-

available/

#rm /etc/apache2/conf.d/apache.conf

Luego se procede a configurar el sitio Web del Squirrelmail.

#pico /etc/apache2/sites-available/webmail

Éste sitio debe contener las siguientes líneas.

65

Page 66: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

<VirtualHost *:80>

ServerName webmail.grupo9.com

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://webmail.grupo9.com

</VirtualHost>

Creamos el sitio Web webmails.

#pico /etc/apache2/sites-available/webmails

Éste sitio debe contener las siguientes líneas, en las cuales se define el

respectivo certificado y llave para la seguridad del sitio Web.

Alias /squirrelmail /usr/share/squirrelmail

# users will prefer a simple URL like http://webmail.example.com

NameVirtualHost *:80

<VirtualHost *:443>

DocumentRoot /usr/share/squirrelmail ServerAdmin [email protected] ServerName webmail.grupo9.com

SSLEngine onSSLCertificateKeyFile ssl/webmail.keySSLCertificateFile ssl/webmail.crtSSLProtocol allSSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

<Directory /usr/share/squirrelmail> Options Indexes FollowSymLinks <IfModule mod_php4.c> php_flag register_globals off </IfModule> <IfModule mod_php5.c> php_flag register_globals off </IfModule>

66

Page 67: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

<IfModule mod_dir.c> DirectoryIndex index.php </IfModule>

# access to configtest is limited by default to prevent information leak <Files configtest.php> order deny,allow allow from all </Files>SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128</Directory>

</VirtualHost>

# redirect to https when available (thanks [email protected])## Note: There are multiple ways to do this, and which one is suitable for# your site's configuration depends. Consult the apache documentation if# you're unsure, as this example might not work everywhere.##<IfModule mod_rewrite.c># <IfModule mod_ssl.c># <Location /squirrelmail># RewriteEngine on# RewriteCond %{HTTPS} !^on$ [NC]# RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L]# </Location># </IfModule>#</IfModule>

Debemos darle la opción a apache2 que además escuche por el puerto 443

(Seguridad). Editar el archivo ports.conf.

#pico /etc/apache2/ports.conf

Agregar la línea Listen 443 de tal forma que el archivo quede de la siguiente

forma.

Listen 80

Listen 443

Procedemos a habilitar los sitios Web creados.

67

Page 68: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

#a2ensite mmc

#a2ensite mmcs

#a2ensite webmail

#a2ensite webmails

Debemos reescribir los módulos de los sitios Web.

# a2enmod rewrite

Cargar el módulo ssl para que pueda funcionar la seguridad de los sitios Web.

# a2enmod ssl

Reinicira el servicio Web para que aplique los cambios efectuados.

# /etc/init.d/apache2 restart

6.15 Configuración Pluging MMC

Procedemos a configurar el plugin-base, el cual comunicará el Samba con la

MMC. Con esto se obtiene el buen funcionamiento de la interfaz web de la

MMC.

#pico /etc/mmc/plugins/base.ini

El contenido debe ser parecido al siguiente.

[ldap]# LDAP we are connected tohost = 127.0.0.1# LDAP base DNbaseDN = dc=grupo9, dc=com# Users location in the LDAPbaseUsersDN = ou=Users, %(basedn)s# Groups location in the LDAPbaseGroupsDN = ou=Groups, %(basedn)s# Computers Locations

68

Page 69: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

baseComputersDN = ou=Computers, %(basedn)s# LDAP managerrootName = cn=admin, %(basedn)spassword = sena2008# If enabled, the MMC will create/move/delete the home of the users# Else will do nothing, but only write user informations into LDAPuserHomeAction = 1# Skeleton directory to populate a new home directoryskelDir = /etc/skel# If set, all new users will belong to this group when createddefaultUserGroup = Domain Users# Default home directory for usersdefaultHomeDir = /home# user uid number startuidStart = 10000# group gid number startgidStart = 10000# LDAP log file pathlogfile = /var/log/ldap.log# FDS log file path# logfile = /opt/fedora-ds/slapd-hostname/logs/access# you can specify here where you can authorized creation of your homedir# default is your defaultHomeDir# example:# authorizedHomeDir = /home, /home2, /mnt/depot/newhome[backup-tools]# Path of the backup toolspath = /usr/lib/mmc/backup-tools# Where are put the archivesdestpath = /home/samba/archives

Editar el plugin mail.ini para poder trabajar con los usuarios y dominios

virtuales.

#pico /etc/mmc/plugins/mail.ini

El archivo debe ser parecido a éste.

[main]disable = 0# Enable virtual domain supportvDomainSupport = 1# If vdomain enabled, OU where the domain are storedvDomainDN = ou=mailDomains, dc=grupo9, dc=com[userDefault]# For Postfix delivery

69

Page 70: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

mailbox = %homeDirectory%/Maildir/# For Dovecot deliverymailbox = maildir:%homeDirectory%/Maildir/# Default quota (200 MBytes) set for user#Ésta línea indica la cuota en Disco para el buzón de los correos.mailuserquota = 204800

Editar el plugin network.ini para administrar los servicio DNS y DHCP.

#pico /etc/mmc/plugins/network.ini

El archivo debe ser parecido al siguiente.

[main]disable = 0[dhcp]dn = ou=DHCP,dc=grupo9,dc=compidfile = /var/run/dhcpd.pidinit = /etc/init.d/dhcp3-serverlogfile = /var/log/daemon.logleases = /var/lib/dhcp3/dhcpd.leases[dns]dn = ou=DNS,dc=grupo9,dc=compidfile = /var/run/bind/run/named.pidinit = /etc/init.d/bind9logfile = /var/log/daemon.logbindroot = /etc/bind/bindgroup = bind# dnsreader = DNS Reader# dnsreaderpassword = DNSReaderPassword

Iniciar la mmc-agent para que se apliquen los cambios efectuados y se ponga

en funcionamiento.

#/etc/init.d/mmc-agent start

Reiniciar el Servicio DNS.

# /etc/init.d/bind9 restart

70

Page 71: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

6.16 Interfaz MMC

Para conectarse a la interfaz web de la MMC, se debe digitar en nuestro

navegador http://127.0.0.1 ó http://192.168.0.19. Cuando se tenga definido el

nombre de host y el nombre de dominio (FQDN) en la consola de

administración MMC se pueda ingresar con http://server1.grupo9.com/mmc

Como Login digitamos “root” y como password “sena2008”, dicho password es

la contraseña del administrador del LDAP.

Una ves haber ingresado, debe aparecer la consola de administración MMC.

71

Page 72: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Procedemos a configurar la respectiva zona en el DNS. Para esto debemos dar

clic en “Network”, luego “Add DNS Zone”, llene los campos requeridos, luego

“Create” para guardar los cambios.

Se debe crear un alias al primer miembro de la zona DNS, de tal forma que el

host virtual del Squirremail sea accesible. Para esto se debe dar clic en “DNS

Zones”, luego en el ícono de la “Lupa”.

72

Page 73: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Ahora, Dar clic en el icono del "lápiz y papel".

Digitar “webmail” como alias del host “server1”, luego dar clic en “Confirm” para

confirmar la configuración.

Al confirmar los cambios aplicados, debe aparecer algo como esto.

73

Page 74: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Se debe editar el ámbito DHCP. Para esto, dar clic en "DCHP subnets", luego

en el icono del "lápiz y papel".

74

Page 75: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Llenar los campos requeridos, de tal forma que sea parecida a la ilustración de

la imagen siguiente, luego dar clic en "Confirm" para guardar los cambios

realizados.

Al confirmar los cambios efectuados, debe aparecer álgo como esto.

75

Page 76: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Hasta éste punto la configuración del servicio DHCP está completa, de ésta

forma y se puede iniciar dicho servicio. Para esto se debe hacer clic en

"Network services management", luego clic en el triángulo verde para iniciar el

servicio DHCP.

Para poder utilizar la cuenta de correo del Administrador se debe habilitar, Para

esto, dar clic en "Users", luego “List”. Dar clic en el icono de "Lápiz y Papel" en

la cuenta correspondiente del Administrator.

Digitar la dirección de correo en el campo “Mail address”.

Nota: Se debe habilitar el plugin de correo e ingresar la cuota en disco

deseada, si no se le asigna alguna cuota, ésta cuenta tomará la cuota por

defecto (200 MB), Lugo guarde los cambios los cambios efectuados; ó se le

76

Page 77: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

puede dar la opción de la cuota ilimitada. Quizás deba ingresar la cuota

nuevamente (ya que la MMC la sobrescribe con el valor predeterminado) y

guardar los cambios.

Proceder a crear alguna cuenta de usuario del dominio. Dar clic en "Add". Se

deben llenar los campos requeridos, sin embargo los campos obligatorios que

debemos llenar son: Login, Password, Confirm Password, Name, Mail address.

Para éste caso, crearemos dos usuarios: rafa, jeyson. Se mostrará primero la

plantilla del usuario rafa y luego la del usuario jeyson.

77

Page 78: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

78

Page 79: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

79

Page 80: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Para trabajar con dominios virtuales debemos realizar los siguientes pasos. El

dominio virtual será “helplan.com”.

Ahora, procedemos a darle la opción a cada usuario para que pueda trabajar

con usuarios y dominios virtuales.

Usuario rafa.

80

Page 81: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Buscamos la sección de Mail plugin (Editando el usuario rafa). En ésta prueba

trabajaremos de la siguiente forma:

Usuario Real: rafa

Usuario Virtual: rafael

Dominio Real: grupo9.com

Dominio Virtual: helplan.com

Al final, confirmamos los cambios.

81

Page 82: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Buscamos la sección de Mail plugin (Editando el usuario jeyson). En ésta

prueba trabajaremos de la siguiente forma:

Usuario Real: jeyson

Usuario Virtual: jahenaoal

Dominio Real: grupo9.com

Dominio Virtual: helplan.com

Al final, confirmamos los cambios.

82

Page 83: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

7 CONFIGURACIÓN DEL LADO DEL CLIENTE (Windows XP. Aplica para

otras versiones de Windows).

Para unir algún equipo cliente XP al dominio grupo9.com debemos realizar los

siguientes pasos.

• Se debe cerciorarse que ningún otro DHCP esté corriendo en nuestra

propia red.

• Inicie el Sistema de Windows e ingrese como Administrador local.

• Cerciorarse que la configuración de la tarjeta de red esté activada para

usar DHCP.

• Clic derecho en “MI PC”, luego “Propiedades”.

• Clic en la pestaña “Nombre de equipo”, luego “Cambiar”.

83

Page 84: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

• Automáticamente ya debe estar definido el nombre de host “clon”.

Seleccionar la casilla de “Dominio” y escribir el dominio al que quiere

pertenece “GRUPO9”. Ojo, se digita como un nombre Netbios. Luego

“Aceptar”.

Aparecerá la siguiente ventana, en la cual debemos ingresar la cuenta del

“Administrator” y la contraseña “sena2008”.

84

Page 85: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Esperar unos segundos. Debe aparecer una pequeña ventana dándo la

bienvenida al dominio GRUPO9. Luego “Aceptar”.

Luego, el quipo nos pedirá que se deba reiniciar el sistema. Clic en

“Aceptar” para todo.

Luego de que el Sitema haya reiniciardo, ingresar alguna de las cuentas

creada anteriormente (rafa ó jeyson). Además debemos dar la opción al

inico de seción, que nos loguearemos contra un dominio y no contra el

sistema.

85

Page 86: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

8 Comprobación del Servidor de Correos.

8.1 Usarios y Dominios Virtuales.

Para ingresar al correo electrónico desde el PDC o desde el cliente XP

debemos realizar los siguientes pasos.

• Digitar en nuestro navegador webmail.grupo9.com Nos daremos

cuenta que de inmediato se redireccionará a

https://webmail.grupo9.com (De forma segura). Pedirá que se debe

obtener un certificado para poder visualizar el contenido del sitio

Web. Clic en OK.

86

Page 87: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

• En la siguiente imagen muestra si aceptamos el respectivo certificado

para poder conectarce de forma segura al sitio Web. Clic en OK.

• De ésta forma, iniciamos sesión sesión con la cuenta de correo

[email protected] y con contraseña sena2008 (Password del

usuario).

87

Page 88: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Una ves de haber ingresado al correo, procedemos a enviar un correo

electrónico a la cuenta [email protected] (helplan.com es un dominio virtual)

ó podemos enviar el mensaje a la cuenta [email protected]

En teoría, el correo ha haberle llegado al buzón del usuario jeyson. Para

probar, ingresamos a la cuenta [email protected] con contraseña sena2008

88

Page 89: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

Podemos darnos cuenta que el correo fue recibido.

• Nota: Si el correo aún no ha llegado, debemos esperar unos

minutos, ya que el proceso de enviar y recibir correos electrónicos es

un suceso que consume recursos de cómputo.

8.2 Comprobación AntiSpam.

Para realizar la comprobación si el antispam spamassassin está en buen

funcionamiento, debemos enviar un mensaje desde la cuenta

[email protected] a la cuenta [email protected], con la palabra “viagra”

varias veces, y como asunto digitar “viagra”.

Una ves hecho esto, revisamos la cuenta [email protected] y observamos el

siguiente etiquetado que spamassassin le agrega al mensaje.

89

Page 90: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

8.3 Comprobación Antivirus.

Para esto, probamos enviando un archivo adjunto .zip o .exe. El antivirus no

acepta estos tipos de extenciones y los reconoce de inmediato como virus.

Enviaremos un mensaje desde la cuenta [email protected] a la cuenta

[email protected] con el archivo adjunto prueba.exe.

Una vez hecho esto, en pocos segundos, aparecerá el siguiente mensaje en la

cuenta [email protected] anunciando que el mensaje que intentó enviar está

catalogado como virus.

90

Page 91: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

9 CONCLUSIÓN

Con el desarrollo de éste proyecto nos damos cuenta de que el Software Libre

intenta suplir una de las necesidades mas importantes en una infraestructura

de red como lo es un servicio de directorio, en este caso es MDS el que nos

brinda esa posibilidad de implementar este servicio en una de las distribuciones

mas estables en el mundo del software libre como GNU/DEBIAN.

Además, se logró entender y explicar el funcionamiento, y facil administración

del servidor de correos mediante el MTA Postfix y sus respectivos soportes que

tiene frente a otras aplicaciones como lo son Dovetoc, Amavis, Squirrelmail,

SSL, entre otras.

Con la elaboración de éste proyecto, logramos entender una gran cantidada de

conceptos que no estaban estipulados dentro de los objetivos de éste, por lo

que nos lleva a decir que cumplió satisfactoriamente los objetivos especificados

dentro del proyecto.

91

Page 92: Servidor De Correo En Debian

Proyecto Plataforma de Correos.

10 BIBLIOGRAFÍA

Para la realización de éste proyecto, se tuvieron varios sitios Web que nos

sirveron de mucha ayuda. Dentro de éstos están.

• http://www.howtoforge.com/mandriva-directory-server-on-debian-etch

• http://linuxsilo.net/articles/postfix.html

• http://es.wikipedia.org/wiki/Wikipedia:Portada

• http://wiki.red-sena.net/

• http://www.arrakis.es/~pfabrega/t1.html

92