You are on page 1of 75

PROYECTO INSTALACION Y CONFIGURACION DE UN SERVIDOR DE

CORREO SEGURO

Administración de redes de computador

Realizado por:

Luisa Fernanda rave Vanegas.


Yenith maritza Rodríguez.
Luz dary tekia joya.
Katherine luna ruiz.
Jenny González.
Luisa Fernanda arias.
Marcelo Esteban Henao.
Carlos córdoba castillo.

Dirigido para:
Fernando quintero
Andrés Mauricio Ortiz
Camilo Zapata
Nicolas Gallego

Servicio nacional de aprendizaje “SENA”


Regional Antioquia
Centro de servicios y gestión empresarial

2008

1
INDICE

1. introducción 3
2. objetivos 4
2.1 objetivo genera 4
2.2 objetivo específicos 4
3. servidor de directorio mandriva 5
4. instalacion 5
4.1 preparación del sistema 5
4.2 sistemas de archivos ACL 7
4.3 repositorios 8
4.4 paquetes necesarios para la configuración 9
5 configuraciones 15
5.1 configuración ldap 15
5.2 configuración samba 20
5.3 configuracion nss ldap 28
5.4 configuracion pam ldap 29
5.5 configuracion bind 34
5.6 configuracion dhcp 34
6 configuracion de los plugins del la mmc 35
6.1 configuracion plugins base 35
6.2 configuracion plugins mail 37
6.3 configuracion plugins network 38
6.4 configuracion del dns por la mmc 40
6.5 configuracion del dhcp por la mmc 42
6.6 unir equipos al dominio. 43
7 configuracion del servidor de correo 44
7.1 configuracion sasl 44
7.2 configuracion postfix 46
7.3 dominios y usuarios virtuales 51
7.4 configuracion dovecot 58
7.5 configuracion amavis 60
7.6 configuracion spammassassim 64
8 configuracion correo seguro 65
8.1 ssl para correo 65
8.2 certificado ssl para la mmc y webmail 67
8.3 mmc de forma segura 68
8.4 webmail de forma segura 69
9 conclusiones 74
10 bibliografías 75

2
INTRODUCCION

Un servidor de correo es aquella aplicación la cual permite enviar mensajes de


un usuario a otro no importando en que red se encuentre el usuario. Al servidor
de correo se le denomina MTA(agente de transporte de correo) ya que es el
encargado de transportar los mensajes hacia el MTA destino. Para que los
MTA se puedan comunicar entre si lo hacen por medio del protocolo SMTP el
cual es un protocolo simple de transferencia de correo. Esta es la principal
funcionalidad de un servidor de correo. Para este manual como servidor de
correo se eligió postfix el cual es un agente de transporte de correo de software
libre es cual es una alternativa muchas mas fácil de administrar y segura.

En este manual presentaremos paso a paso la instalación y configuración de


un servidor de correo seguro en Linux (debian etch 4.0) y además como
instalar y configurar un servicio de directorio en mandriva para poder autenticar
y almacenar la base de datos de todos los usuarios. En este caso como base
de datos se trabajara con openldap la cual Será administrada por el servidor de
directorio de mandriva.

El servidor de correo utilizara como MTA postfix integrado con dovecot el cual
provee POP3 Y IMAP. También se implementara con un sistema anti-spam
como los es el spamassassim y un sistema de antivirus como lo es el clamAV.
Además utilizara el SASL para autenticar los usuarios contra el ldap, también
utilizara ssl/tls para cifrar el trafico y muchos componentes mas que hacen del
servidor de correo una opción completa para implementarlo.

El manual también hará una breve introducción de lo que significa cada


componente con se implementa ya que de esta manera se quiere que quien lo
implemente tenga una idea clara de los que va hacer y por que lo debe hacer.

3
OBJETIVO GENERAL

El objetivo es montar un sistema de correo electrónico totalmente funcional y


de alto rendimiento que use un completo paquete de modernas tecnologías y
protocolos que mejoren se eficiencia , robustez, flexibilidad y seguridad, y que
nos permita comprender el perfecto funcionamiento e integración de todos los
componentes que conforman la plataforma de correo postfix , para ello
realizaremos un manual que le proporcione al usuario una guía bien detallada,
clara y fácil de cómo montar este servidor de correos

OBJETIVOS ESPECIFICOS

• Diseñar e implementar un servidor de correo seguro.


• Realizar detalladamente la instalación y configuración de un servidor de
correo
• Definir claramente el significado de todo componente que utiliza el
servidor de correo.
• Demostrar la fácil administración de un servidor de correo como lo es el
postfix.
• Hacer que el servidor de correo autentique los usuarios en un sistema
de directorio o base de datos como lo es ldap.
• Hacer que el servidor soporte un sistema de anti-spam y anti-virus,
administración grafica, además que cifre tráfico y permita configurar
usuarios y dominios virtuales.

4
SERVIDOR DE DIRECTORIO EN MANDRIVA.

A continuación se dará a conocer un paso a paso de lo que conlleva la


instalación y la configuración de un mds en debían y de la fácil administración
que se le puede dar a través de la Web por la consola de administración de
mandriva.
Este manual contiene todo el sistema de integración del openldap como por Ej.:
• Un SAMBA controlador de dominio primario (pdc)
• POSTFIX con el servidor de correo dovecot
• Amavis, spamassassim y clamAV
• BIND servidor dns
• DHCP

Este manual se debe seguir tal y como esta pues cualquier cambio que se le
haga diferente a los que ya están especificados podría ocasionarle problemas o
fallos con la configuración.

Primero que todo se debe tener tener definido algunos parámetros tales como:

Hostname: este debe llevar nombre de maquina. Y nuestro dominio.


Ej.: debían que es el nombre de mí maquina.
diensten .com que es mi dominio.
Así debe de quedar debian.diensten.com
Samba domain: este lleva el dominio. Ej.: DIENSTEN
La IP: nuestra IP Ej.: 192.168.0.10
Password: esta es la contraseña la cual es preferible que sea de la misma en
toda configuración que la solicite. Ej. : sena2008

INSTALACION

PREPARACION DEL SISTEMA

HOSTNAME

Editar en el archivo host en nombre de la maquina y la ip del servidor en el


siguiente archivo de configuración para que nuestra maquina pueda resolverse
localmente.

5
pico /etc/hosts

Luego insertar el nombre del host en el archivo hostname para que pueda
resolver el dominio.

echo debian.diensten.com > /etc/hostname

Para que coja los cambios de lo que se acabo de realizar debemos reiniciar
con el comando.

reboot

Ya con la maquina reiniciada miramos si los cambios surtieron efecto.


Con un comando el cual nos mostrara el nombre del host en este caso me
debería mostrar debian ya que ese es el nombre de mí maquina

hostname

Y si queremos ver si el sistema ya reconoce tanto el nombre de mi maquina


como mi dominio le damos el comando.

hostname -f

Nos debería de mostrar algo similar a esto.

debian.diensten.com

6
SISTEMA DE ARCHIVOS ACL

Para que samba sea capaz de examinar los ficheros acl entre un servidor Linux
y un cliente Windows lo que necesita es agregar al punto de montaje las acl
para que el usuario pueda hacer uso de sus recursos.

Para agregar las acl debemos entrar al archivo de configuración donde se


encuentran la información del sistema.

pico /etc/fstab

Agrego las acl en el punto de montaje correspondiente al sistema y con esto


se establece unas reglas para el acceso a los recursos que se publican con
samba.

Ya de haber agregado las acl se remonta el montaje para que los cambios
tengan efecto.

mount -o remount /

7
Con el siguiente comando observamos si los cambios tuvieron efecto.

mount -l

Para ello nos debería de mostrar la opción acl en el punto de montaje


correspondiente.

REPOSITORIOS

Ahora para poder descargar los paquetes necesarios para toda la configuración
el mds proporciona el repositorio del cual podemos descargar los paquetes que
van relacionados con el mismo tales como el bin9 y el dhcpd.

Repositorio MDS
deb http://mds.mandriva.org/pub/mds/debian etch main

Debian volatile

Este repositorio proporciona nuevos paquetes de clamAV y spamassassin del


repositorio estandar de debian.
Repositorio debian volatile
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free

Debian backports

Proporciona los repositorios para los paquetes de dovecot.

Repositorio bacports
deb http://www.backports.org/debian etch-backports main

Estos repositorios debemos de agregarlos en el archivo de configuración.

8
pico /etc/apt/source.list

Aparte de este repositorio necesitamos algunos adicionales para descargar los


paquetes completos y también utilizamos los repositorios que viene por defecto
en el sistema.

deb http://ftp.es.debian.org/debian/ stable main contrib non-free


deb ftp://ftp.us.debian.org/debian sarge main contrib non-free

Para actualizar los repositorios que acabamos de agregar le damos el siguiente


comando.

apt-get update

Pero si al momento de actualizar te sale un error en cual te dicen


Algo sobre de obtener una llave pública. Le das en la consola el siguiente
parámetro par obtener la llave pública. La cual es la que nos permite tener
acceso para descargar los paquetes backport.

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

Ahora si podemos volver a actualizar y ya no nos saldrá ningún error

PAQUETES NECESARIOS PARA LA CONFIGURACION.

Ahora procedemos a instalar los paquetes necesarios.

apt-get install mmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-


web-samba mmc-agent. Estos paquetes son los que nos permiten la administración
grafica del servicio de directorio.

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


python-mmc-Proxy python-mmc-samba. Python es el lenguaje de programación en
el que esta escrito estos paquetes por lo cual se descargan estas librerías.

Postfix. Este paquete es el MTA el cual se encarga del transporte de los


mensajes de una maquina a otra en una red.

Postfix-ldap. Es el esquema del postfix para poblar la base de datos del ldap.

Amavisd-new. Este paquete es el que hace la función de puente entre el


spamassassin y el postfix.

ClamAV. Este es el antivirus el cual determina si que correo contiene virus.

9
zoo, gzip , bzip2, unzip, unrar-free, unzoo, arj Estos son los paquetes que permiten
comprimir, descomprimir o empaquetar cualquier fichero.

ClamAV-daemon Este es el demonio del antivirus clamAV

Spamassassin Este es el programa que permite filtrar el correo basura (Spam)

Razor y pyzor. Estos paquetes son detectores de spam.

Dcc-client Este paquete es el que recolecta y cuenta los checksum


(verificación) de los correos para detención de spam.

Slapd. Este es el demonio del ldap.

Ldap-utils Este paquete contiene las herramientas de consola para acceder a


los datos almacenados en el sistema de directorios

Dhcp3-Server Este paquete es el servidor dhcp

Dhcp3-Server-ldap Este es servidor dhcp integrado con el ldap.

bind9 Este paquete es el servidor dns.

Samba Este es el paquete samba es un conjunto de herramientas que permite


compartir recursos en Linux.

Smbclient Es el cliente de samba

Smbldap-tools El paquete Smbldap-tools es una colección de scripts que


ofrecen un sistema de gestión de usuarios y grupos con LDAP y Samba.

Los siguientes paquetes no se pueden instalar del repositorio oficial de debían


ya que tienen un error en relación con ldap por ello estos se descargan del
repositorio backports. Estos paquetes son los que utilizaremos para el servidor
de correo seguro con dovecot.

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

Estos paquetes son todos los que utilizaremos para la configuración del
servidor de correo seguro con dovecot.

10
Ahora procedemos a descargar los paquetes necesarios por consola.

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

NOTA: en caso de que cuando se este instalando todos los paquetes donde
nos dice que el paquete ddc-client no esta disponible lo borramos de la lista ya
que este paquete no es necesaria su instalación esto sucede es por que en los
repositorios no se encuentran.

Mediante la instalación de los nuevos paquetes se harán una serie de


preguntas las cuales deben definir de la siguiente manera.

Ldap es un protocolo a nivel de aplicación que permite el acceso u un servicio


de directorio.

Aquí le daremos la contraseña que tendrá nuestro administrador del ldap en


este caso sena2008 la cual se definió anteriormente.

Ahora ingresamos nuevamente la contraseña para verificar que es la misma


que le dimos anteriormente.

11
Ahora solo debemos dar aceptar en la versión no autoritaria del servidor dhcp.

Ahora en el servidor samba introduciremos el grupo de trabajo o el dominio

Esta configuración es para si deseamos usar la configuración wins que


proviene del dhcp. Le damos que no.

Ahora configuraremos el postfix; de las diversas opciones que nos ofrecen


escogeremos sitios de Internet ya que los correos se envían y se reciben en
smtp.

12
Ahora solo debemos de dar el nombre de la maquina mas el nombre del
dominio ya que este es el nombre que aparecerá al originarse el correo.

Ahora en la configuración del libnss-ldap introduciremos el nombre distintivo de


la base de búsqueda del ldap.

Ahora escogemos con que versión del ldap se trabajara .es preferible escoger
las versiones mas recientes en este caso la 3 que ofrece mecanismo de cifrado
y autenticación.

13
Ahora escogeremos que cuenta se utilizará para las consultas nss con
privilegios de root. En la opción cn cambiaremos manager por admin. Ya que
es a este que reconoce como administrador. Y en dc pondremos nuestro
dominio.

Ahora introduciremos la contraseña para la cuenta ldap del root.

Ahora solo daremos aceptar pues lo que nos dicen es que en el archivo
nsswitch no se gestiona automáticamente si no que mas adelante tendremos
que configurarlo. Para que utilice la fuente de datos del ldap y no solo la del
sistema.

Esta opción indica que si el root tiene permisos para ver la base de datos del
ldap. Le decimos que no.

14
En esta opción solo decimos que no ya que no hace falta un usuario para
acceder a la base de datos.

CONFIGURACIONES

CONFIGURACION LDAP

Archivos de esquema

En primer lugar debemos copiar los archivos de esquema para la mmc, mail,
samba, printer (impresora), dns y dhcp en el directorio de esquemas del ldap
de la siguiente manera.

Esto se hace en consola.

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/printer.schema.gz >
/etc/ldap/schema/printer.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

Luego incluimos los esquemas en el archivo de configuración del ldap ya que


es allí donde el ldap ira a buscar los diferentes esquemas de todos los
servicios.

pico /etc/ldap/slapd.conf

15
Ahora incluimos estas las líneas después del esquema inetorgperson.

Include /etc/ldap/schema/mmc.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/printer.schema
include /etc/ldap/schema/mail.schema
include /etc/ldap/schema/dnszone.schema
include /etc/ldap/schema/dhcp.schema

El archivo debe de quedar la siguiente forma:

Ahora habilitaremos los esquemas con schemacheck on copiándolo debajo de


los esquemas que incluimos anteriormente. Como lo podemos observar en la
imagen anterior.

Configuración básica

Ahora necesitamos que la contraseña que dimos anteriormente o sea la


contraseña del administrador ldap este en forma encriptada vamos a
encriptarla de la siguiente manera:

slappasswd –s sena2008

16
Nos debe de aparecer algo similar a esto.

{SSHA} n1p2aApis6YIjLOXggSyLx7cJ2bM6P0P
Esa es la forma de cómo queda encriptada ahora debemos tenerla anotada ya
que la necesitaremos mas adelante.

Ahora entraremos al siguiente archivo de configuración donde se define tanto el


dominio como la contraseña del administrador .

pico /etc/ldap/slapd.conf

Buscamos la línea que esta comentada con la entrada para el administrador


ldap (rootdn) y la descomentamos. Luego de bajo de esa misma línea debemos
ingresar la contraseña encriptada que el administrador ldap género de la
siguiente forma.

rootpw {SSHA} n1p2aApis6YIjLOXggSyLx7cJ2bM6P0P

El archivo debe de quedar de la siguiente manera:

NOTA: cuando en la línea del rootdn no aparece nuestro dominio eso significa
que cuando al comienzo de la configuración de las libnss-ldap no se configuro
bien. Eso nos puede traer problemas .por eso se debe seguir paso a paso este
manual.

17
Ahora es necesario modificar las opciones de indexing ya que es allí donde va
y busca los identificadores del esquema. La cual encontraremos en

#indexing options for database # 1

En primer lugar removeremos la siguiente línea

Index objectClass eq

Y luego agregaremos estas otras líneas:


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

El archivo debería de quedar de la siguiente forma:

Ahora agregaremos samba a las listas de acceso para la base de datos del
ldap pero primero debemos de borrar la línea que se muestra continuación.

18
Y agregamos esta linea.

access to attrs=userPassword,sambaLMPassword,sambaNTPassword

Ya en el archivo del ldap /etc/ldap/ldap.conf agregaremos las siguientes líneas


las cuales definen la ip del host donde estará montado el ldap y el dominio.

19
.Ahora Reiniciaremos el servicio del ldap.

/etc/init.d/slapd restart

Y nos debe de reiniciar bien.

CONFIGURACION SAMBA
CONFIGURACION BASICA

En primer lugar debemos detener nuestro samba con el siguiente comando.

/etc/init.d/samba stop

Ahora integraremos el samba con el ldap. Debemos de copiar el archivo


smb.conf del ldap y pegarlo en el directorio de samba estos archivos los ofrece
las librerías de python-mmc-base las cuales fueron instaladas anteriormente.

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

ya debemos entrar a configurar algunos parámetros. En el archivo de


configuración del samba.

pico /etc/samba/smb.conf
Primeros debemos de establecer algunos valores en la sección global del
samba donde especificaremos:
• El Workgroups(grupo de trabajo )
• Netbiosname Este parámetro fija en nombre NetBIOS por el cual es
conocido el servidor samba.
• El ldapadmin que es el parámetro que define el DN que usa samba para
contactar el servidor ldap.
• El ldapsuffix se usa como la base dn para todas las búsquedas ldap.
• El logon path que indica el directorio home donde se guardan los
ficheros de los perfiles.

Asi como esta definido todos estos parámetros:

20
Luego en la misma sección global añadiremos las siguientes línea las cuales
son la que nos permiten que el samba se pueda integrar con 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

Nos debe de quedar así:

21
En el mismo archivo samba en la sección homes añadiremos la siguiente linea.
Este parámetro específica donde va ocultar los archivos en este caso en maildir
que es un formato de almacenamiento.

hide files = /Maildir/

Debe quedar de la siguiente forma.

22
Ahora en la sección profile añadimos la siguiente linea. La cual es para ocultar
la carpeta de profile.

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

La cual deberá de quedar de la siguiente forma.

Ahora en la sección archives establecer el siguiente valor deber quedar igual a


este. Pero no se nos puede pasar por alto que el carpeta archives no existe en
el home por ello lo debemos de crear

23
Si todo ha ido bien con el comando testparm veremos toda la configuración del
samba y nos debería de mostrar errores. Nos debería de mostrar algo similar a
esto.

Con este comando daremos las credenciales al samba para que pueda escribir
sobre el ldap.

smbpasswd -w (contraseña)

Debe de quedar así:

24
Ahora para nuestro grupo de trabajo debemos de crearle un SID el cual es un
identificador de nuestro grupo de trabajo. con el siguiente comando lo
crearemos.

net getlocalsid DIENSTEN

Ahora comprobaremos que el SID si haya sido registrado en el ldap con el


comando.

slapcat | grep sambaDomainName

Si se ha registrado el SID correctamente en el ldap nos debería de aparecer


algo igual a esto.

25
Ahora iniciaremos el samba

/etc/init.d/samba start

Directorio ldap

Ahora crearemos los archivos que nos permiten definir como el samba se
comunicara con el ldap.

pico /etc/smbldap-tools/smbldap_bind.conf

En este archivo agregaremos los siguientes parámetros allí es donde se define


como se comunicara con el servidor ldap

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

Nos debería de quedar de esta forma:

Ahora crearemos el principal archivo de configuración donde se define como se


se gestionara tanto los usuarios como los grupos en ldap y samba.

pico /etc/smbldap-tools/smbldap.conf

Este archivo debe de tener este aspecto y en el SID cambiamos el que viene
por el que creamos.

SID="S-1-5-21-3159899821-123882392-54881133"
sambaDomain="DIENSTEN"

26
ldapTLS="0"
suffix="dc=diensten,dc=com"
usersdn="ou=Users,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=DIENSTEN,${suffix}"
scope="sub"
hash_encrypt="SSHA"
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"

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

Ahora procedemos a poblar la base de datos del ldap y a crear una cuenta para el
administrador .luego de haberla creado le damos una contraseña la cual va ser la del
administrador.
smbldap-populate -m 512 -a Administrator

27
Ahora procedemos a cambiar el uid para poder utilizar el servidor de correo
además añadir a esta cuenta los usuarios de dominio. De la siguiente manera.

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

CONFIGURACION NSS LDAP

Ahora configuraremos el sistema para utilizar el directorio ldap para obtener


listas de usuario y grupos.
Editamos en el archivo nsswitch.conf
El contenido debe de ser parecido a este.

# /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 ldap
group: compat ldap
shadow: compat ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis

28
DIRECTORIOS SAMBA

Ahora crearemos los directorios necesarios para el servidor samba.

mkdir -p /home/samba/shares/public/
mkdir /home/samba/netlogon/
mkdir /home/samba/profiles/
mkdir /home/samba/partage/
mkdir /home/samba/archives/

Ahora daremos los permisos necesarios para cada directorio.

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/

CONFIGURACION PAM LDAP

En este paso añadiremos el modulo ldap al pam los cuales se utilizaran para
que los usuarios puedan autenticarse contra el ldap.

Ahora en el archivo.
pico /etc/pam.d/common-account

El contenido debe ser similar a este.

#
# /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.so
account sufficient pam_ldap.so

29
Ahora en el archivo.

pico /etc/pam.d/common-auth

El contenido debe de ser similar a este.

#
# /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_secure
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so

30
En el archivo.

pico /etc/pam.d/common-password

El archivo debe ser similar.


#
# /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 md5
password sufficient pam_ldap.so use_first_pass use_authtok
password 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

31
En el archivo.

pico /etc/pam.d/common-session

Debe de ser similar a este.


#
# /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.so
session optional pam_ldap.so

32
Ahora reiniciaremos el sistema.

Luego de haber reiniciado el sistema al grupo administradores del dominio le


daremos los privilegios de añadir maquinas al dominio de la siguiente manera.

net -U Administrator rpc rights grant 'DIENSTEN\Domain Admins' SeMachineAccountPrivilege

Nos pedirá la contraseña que le dimos al administrador del dominio. y nos


mostrara algo similar a esto.

NOTA: en caso de que nos salga un error donde nos dice que no se puede
conectar con el 127.0.0.1 puede ser por varias cosas como la contraseña no es
la correcta o por que es a veces necesario reiniciar ciertos servicios. O también
en los archivo de configuración del smbldap tools no esta bien definido tanto la
contraseña como el dominio.

33
CONFIGURACIÓN DEL DNS

BIND

Ahora haremos una copia del archivo de configuración al directorio bind. El cual
se encuentra en las librerías que se descargaron anteriormente del python.

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

Haremos que el slapd cambie el punto de partida para que inicie primero que el
bind con el comando.

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

Editamos en el archivo

pico /etc/resolv.conf

Nuestra ip del dominio y el dominio par que pueda resolver.

Debe de quedar así:

CONFIGURACIÓN DHCP

Ahora haremos copia del archivo de configuración al directorio dhcp. en cual se


encuentra en las librerías que se descargaron del python.

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

Ahora este archivo debe tener este aspecto.

pico /etc/dhcp3/dhcpd.conf

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

CONFIGURACIÓN DE LOS PLUGINS DE LA MMC

CONFIGURACION PLUGIN-BASE

Ahora editaremos el archivo de configuración del plugin base el cual es el que


nos permite comunicar el samba con la mmc .y con ello poder ver la interfaz
Web.

pico /etc/mmc/plugins/base.ini

En este archivo modificaremos el nombre distintivo de la base para que se


ajuste a nuestro dominio, la contraseña del administrador.

Debe quedar con este aspecto

[ldap]
# LDAP we are connected to

35
host = 127.0.0.1
# LDAP base DN
baseDN = dc=example, dc=com
# Users location in the LDAP
baseUsersDN = ou=Users, %(basedn)s
# Groups location in the LDAP
baseGroupsDN = ou=Groups, %(basedn)s
# Computers Locations
baseComputersDN = ou=Computers, %(basedn)s
# LDAP manager
rootName = cn=admin, %(basedn)s
password = howtoforge
# If enabled, the MMC will create/move/delete the home of the users
# Else will do nothing, but only write user informations into LDAP
userHomeAction = 1
# Skeleton directory to populate a new home directory
skelDir = /etc/skel
# If set, all new users will belong to this group when created
defaultUserGroup = Domain Users
# Default home directory for users
defaultHomeDir = /home
# user uid number start
uidStart = 10000
# group gid number start
gidStart = 10000
# LDAP log file path
logfile = /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 tools
path = /usr/lib/mmc/backup-tools
# Where are put the archives
destpath = /home/samba/archives

36
CONFIGURACION PLUGIN – MAIL

Editaremos en el archivo plugin mail es cual es del correo.

pico /etc/mmc/plugins/mail.ini

En el plugin mail.ini trabajaremos con usuarios y dominios dominios


virtuales.por ello descomentaremos la línea vDomainDN y agregamos nuestro
dominio.

El archivo debe de tener este aspecto.

[main]
disable = 0
# Enable virtual domain support
vDomainSupport = 0
# If vdomain enabled, OU where the domain are stored
vDomainDN = ou=mailDomains, dc=example, dc=com

[userDefault]
# For Postfix delivery
# mailbox = %homeDirectory%/Maildir/
# For Dovecot delivery
mailbox = maildir:%homeDirectory%/Maildir/
# Default quota (200 MBytes) set for user
mailuserquota = 204800

37
CONFIGURACIÓN PLUGIN-NETWORK

En es el archivo de red el cual permite que los servicios tanto del dhcp como el
dns puedan cargar la mmc.

pico/mmc/plugins/network.ini

En este archivo solo agregaremos nuestro dominio .el archivo deberá tener un
aspecto similar a este.

[main]
disable = 0
[dhcp]
dn = ou=DHCP,dc=example,dc=com
pidfile = /var/run/dhcpd.pid
init = /etc/init.d/dhcp3-server
logfile = /var/log/daemon.log
leases = /var/lib/dhcp3/dhcpd.leases

[dns]
dn = ou=DNS,dc=example,dc=com
pidfile = /var/run/bind/run/named.pid
init = /etc/init.d/bind9
logfile = /var/log/daemon.log
bindroot = /etc/bind/
binduser = bind
# dnsreader = DNS Reader
# dnsreaderpassword = DNSReaderPassword

38
Ahora reiniciaremos el mmc-agent

/etc/init.d/mmc-agent restart

Y luego reiniciaremos el bind

Ya con esta configuración podremos acceder a la interfaz Web de mmc.

Esta es la consola mmc

39
CONFIGURACION DEL DNS POR LA MMC

Ahora crearemos una zona en el dns primero nos iremos para network y luego
para add DNS zone y llenamos todos los parámetros necesarios

En dns zone FQDN: va nuestro dominio


Description: puede ser dns o la que queramos.
Name Server host name: el nombre de nuestra maquina
Name sever ip: la ip de nuestro servidor
Network address: el ID de red
Network mask: la mascara de red correspondiente a cada rango.

Nos debería de quedar similar a este

40
Listo esto significa que nos creo bien la zona dns.

Esta es nuestra zona creada.

41
CONFIGURACION DEL DHCP POR LA MMC

De nuevo entramos por network, luego elegimos la opción dhcp subnets y


configuraremos los siguientes parámetros.

Dhcp subnets address: es el ID de red a la cual va repartir direcciones.


Netmask: la mascara de red dependiendo del rango.
Description: puede ser dhcp o la que queramos. Y marcamos la opción
authoritative.
Broacast address: el rango de dirección en broacast.
Domain name: nombre de nuestro dominio.
Routers: la puerta de enlace
Wins Server: la IP del servidor.

Los siguientes parámetros definen el tiempo de concesión de cuanto el cliente


va tener la ip que le entrego el dhcp y de donde hasta donde el dhcp va repartir
direcciones.

42
Minimum lease time: tiempo mínimo de lo que va tener la ip..
Default lease time: tiempo por defecto de lo que va tener la ip.
Maximum lease time: tiempo máximo de lo que va tener la ip.
Ip range start: ip desde donde va a entregar
Ip range end: hasta donde va entregar

Damos create y ya nos queda configurado nuestro dhcp. Ahora


Iniciemos el dhcp y el dns.

UNIR EQUIPOS A NUESTRO DOMINIO

Ahora que el dhcp entrega direcciones y mi dns resuelve en diferentes equipos


ahora puedo proceder a unir un equipo al dominio.

En el equipo cliente (Windows) me voy para mi PC <clic


derecho><propiedades><nombre de equipo><cambiar><dominio>

43
Ahora ingreso con la cuenta de usuario administrador y la contraseña la cual es
sena2008.

Nota: en caso tal de que no se pueda unir al dominio nos vamos para la
configuración de red y en la opción wins ponemos la ip del nuestro dominio.

Ahora ya nos unió un equipo al dominio DIENSTEN.COM

CONFIGURACION SERVIDOR DE CORREO

CONFIGURACION SASL

El servidor de correo con el que trabajaremos será postfix, este servidor


utilizará sasl para autenticar a los usuarios contra el servidor ldap.

Crearemos una carpeta.

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

44
Postfix corre en chroot, entonces, para que pueda ver el socket del sasl
debemos de agregar en el archivo.

pico /etc/default/saslauthd

Líneas a agregar:

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

En es el archivo de autenticación del sasl donde es donde define cual será el


servidor en este caso ldap y donde buscara los usuarios los cuales va a
autenticar.

pico /saslauthd.conf

Se debe agregar esto.

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

Debemos de crear un archivo el cual es el smtpd.conf para indicarle al postfix


cual va ser la forma de autenticación.

pico /postfix/sasl/smtpd.conf

Se debe agregar esto:

pwcheck_method: saslauthd
mech_list: plain login

Ahora añadiremos al usuario postfix al grupo sasl

adduser postfix sasl

Reiniciaremos el sasl

/etc/init.d/saslauthd restart

45
CONFIGURACIÓN POSTFIX

Postfix

Para esta instalación se ha elegido la configuración de dominio y usuarios


virtuales.

Copiar el siguiente archivo a la configuración del postfix .el cual se encuentra


en las librerías que se descargaron del python.

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

Configuración del main.cf

Ajustar la siguiente configuración al archivo main.cf. Este es el archivo que


tiene la mayoría de la configuracion del postfix es el que se adapta a cada
servidor de correo y en el cual se define con que componentes trabajara el
postfix.

pico /etc/postfix/main.cf

Editar el archivo para que se ajuste a nuestro dominio el cual debe quedar de la
siguiente forma:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.


append_dot_mydomain = yes
append_at_myorigin = yes

# Uncomment the next line to generate "delayed mail" warnings


#delay_warning_time = 4h

myhostname = debian.diensten.com
mydomain = diensten.com
alias_maps = ldap:/etc/postfix/ldap-aliases.cf, hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = debian.diensten.com,diensten.com,localhost.localdomain,localhost
mail_destination_recipient_limit = 1
mailbox_command = /usr/lib/dovecot/deliver -d "$USER"@"$DOMAIN"
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +

46
inet_interfaces = all

# Use Maildir
home_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,
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

47
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

# Fix for outlook


broken_sasl_auth_clients = yes

# Reject anonymous connections


smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =

# SSL/TLS
smtpd_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.key
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache

# Amavis
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings

Configuración del ldap aliases

Como los alias del correo están almacenados en el directorio ldap hay que
decirle al postfix donde y como realiza la búsqueda
.
Ahora editaremos la configuración del ldap aliases en el archivo

pico /etc/postfix/ldap-aliases.cf

Configuraremos el archivo para que se ajuste al nuestro dominio debe de tener


este aspecto.

server_host = 127.0.0.1
search_base = ou=Users,dc=diensten,dc=com
query_filter = (&(objectClass=mailAccount)(mailalias=%s)(mailenable=OK))
result_attribute = maildrop
Version = 3

Configuración del master.cf

Es la última y más importante configuración del postfix este es el archivo que


contiene la configuracion para los procesos maestros del posfix cada linea
indica que componente debe correr.

En el archivo.

48
pico /etc/postfix/master.cf

Agregaremos las siguientes líneas

# SMTPS
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes

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

# Mail to Amavis
amavis 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 Amavis


127.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_recipie
nt_checks

Reiniciemos el postfix

/etc/init.d/postfix restart

Ahora instalaremos el squirrelmail que es una aplicación webmail para nuestro


servidor de correo.

49
apt-get install squirrelmail

Ya con el instalado haremos un enlace simbólico para que los archivos del
squirremail queden en el apache.

ln -s /usr/share/squirremail/config/apache.conf/ /etc/apache2.conf

Ahora entramos al archivo de configuracion del apache

pico /etc/apache2/apache.conf

Solo pondremos el nombre del servidor y la IP del servidor de la siguiente


forma.

Ahora reiniciaremos el apache

/etc/ini.d/apache2 restart

Con esto podremos ver nuestra interfaz grafica de squirremail.

50
DOMINIOS Y USUARIOS VIRTUALES

Como se nombro anteriormente trabajaremos con dominios y usuarios virtuales


para crear los dominios y los usuarios primero debemos de definir varios
parámetros.

En el archivo main.cf del postfix debemos de agregar algunas líneas que se


encuentran en el main.cf de la siguiente ruta /usr/share/doc/python-mmc-
base/contrib/postfix/with-virtual-domains.

Estas líneas son las que me permiten poder trabajar con los dominios virtuales
en el postfix .estas son las líneas que agrego el main.cf

# Virtual Domains Control


virtual_mailbox_domains = ldap:/etc/postfix/ldap-domains.cf
virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cf
virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf, ldap:/etc/postfix/ldap-maildrop.cf
virtual_mailbox_base = /
virtual_alias_domains =
virtual_minimum_uid = 100
virtual_uid_maps = ldap:/etc/postfix/ldap-uid.cf
virtual_gid_maps = ldap:/etc/postfix/ldap-gid.cf

51
Ahora todos estos archivos los cuales se encuentran en la ruta
/usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-domains.
Debemos de copiarlos en el postfix los cuales son:

Ldap-domains.cf
Ldap-account.cf
Ldap-aliases.cf
Ldap-maildrop.cf
Ldap-uid.cf
Ldap-gid.cf
Ldap –transport.cf

Ya cuando los tengamos en el postfix debemos irnos a cada archivos hacerle


una serie de modificaciones.

En el archivo ldap-domains.cf es donde esta definido los dominios virtuales


que vamos a gestionar.

En el archivo ldap-account.cf se buscan los destinatarios de los mensajes junto


con el path relativo dónde se encuentra los directorios Maildir dónde almacenar
los mensajes. Es decir, las direcciones de correo válidas, indicando además el
camino relativo a partir de virtual_mailbox_base.

52
En el archivo ldap-aliases.cf aquí se encuentran las tablas de los alias.

En el archivo ldap-maildrop es el agente de entrega de correo el cual tiene la


capacidad de filtrado.

53
El ldap-uid.cf es el identificador del usuario que permite escribir e el mailbox
.

En el archivo ldap-gid.cf es también un identificador un grupo el cual le permite


escribir en el mailbox.

El archivo ldap-transport.cf Especificamos el agente de transporte por defecto


que se encargará de los dominios definidos en $virtual_mailbox_domains

54
Ya con todo esto configurado ahora podemos crear nuestros dominios y
usuarios virtuales.

Para crear los dominios virtuales nos vamos para la consola administrativa del
mandriva y en los servicios de correo escogemos la opción add a domain

Ahora damos el nombre de el dominio virtual que deseamos crear en este caso
grupo3.com.

55
Ya nos queda creado nuestro dominio virtual.

Ahora procedemos a crear usuarios virtuales en primer lugar nos vamos para
users que es allí donde se crearan y a el usuario que queramos crearle un
usuario virtual escogemos la opción que se muestra marcada ya que es allí
donde entramos a agregarlo.

56
Ahora en la plantilla donde se creo el usuario real o sea luisa .

Buscamos el parámetros mail plugin y como podemos ver se agrego un usuario


virtual el cual se le llamo mona con el dominio real. Y también se creo un
usuario virtual con el dominio virtual que se creo anteriormente

57
Ya nos quedo creado tanto el dominio como los usuarios virtuales. Ahora
podemos enviar mensajes al usuario real por medio del dominio y usuario
virtual normalmente. y nos funcionara igual.

CONFIGURACIÓN DOVECOT

Dovecot es un servidor pop y imap.

Configuración principal

El archivo dovecot.conf debemos de dejarlo limpio para agregar ciertos


parámetros de la siguiente manera.

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

Ahora entramos al archivo en el cual esta definido los protocolos con los que
dovecot trabajara.

pico /etc/dovecot/dovecot.conf

El contenido que debe tener debe ser igual a este solo cambiaremos el
dominio.

protocols = imap imaps pop3 pop3s


listen = 0.0.0.0

58
login_greeting = diensten.com mailserver ready.
mail_location = maildir:~/Maildir
disable_plaintext_auth = no
ssl_cert_file = /etc/ssl/certs/mail.pem
ssl_key_file = /etc/ssl/private/mail.key
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot.log

# IMAP configuration
protocol imap {
mail_plugins = quota imap_quota
}

# POP3 configuration
protocol 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

59
user = postfix
group = postfix
}
}
}

Configuración ldap

Ahora limpiamos el archivo dovecot-ldap.conf par agregar algunos parámetros.

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

Ahora entramos al archivo el cual es donde esta definido todos los parámetros
del servidor ldap.

pico /etc/dovecot/dovecot-ldap.conf

El contenido de este archivo debe ser igual a este.

hosts = 127.0.0.1
auth_bind = yes
ldap_version = 3
base = dc=diensten,dc=com
scope = subtree
user_attrs =
homeDirectory=home,uidNumber=uid,mailbox=mail,mailuserquota=quota=maildir:stora
ge
user_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK))
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK))
default_pass_scheme = CRYPT
user_global_gid = mail

Ahora ajustaremos los derechos para emitir el dovecot.a fin de que el dovecot
Utilice el derecho uid y gid cuando se almacenan los mensajes en maildir.

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

Reiniciaremos el dovecot.

/etc/init.d/dovecot restart

CONFIGURACION AMAVIS

Amavis e un programa que hace a función de puente entre el spamassassim


Y el clamAV .por ello postfix pasara el correo al amavis, el amavis se los
pasara al spamassassim y el clamav y ya cuando el correo hasido verificado
será de nuevo enviado al postfix.

60
En el archivo.

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

El contenido debe ser igual a este.

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;

Ahora en el archivo.

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

El contenido tiene que ser similar a este.

Use strict;
$pax='pax';
1;

Ahora en el archivo

pico /etc/amavis/Conf./05-domain_id

En la línea chomp ($mydomain = `head –n 1 /etc/mailname `); La modificaremos


colocando nuestro dominio con el que trabajara amavis el cual debe de quedar
así:

chomp ($mydomain = `diensten.com` );

Debe quedar igual a este:

61
Ahora en el archivo

pico /etc/amavis/conf.d/20-debian_default

En la parte donde nos dice ***** SPAM****** modificaremos los valores ya que
estos son los que me definen que tanto queremos que nuestros correos sean
tomados como spam.

Así fue definido.

62
En otra parte del mismo archivo agregaremos las siguientes líneas

$forward _method = `smtp:127.0.0.1:10025`;


$notify method = $forward_method;

63
Ahora agregaremos el usuario clamav al grupo amavis y reiniciaremos tanto el
amavis como el clamav.

adduser clamav amavis


/etc/init.d/amavis restart
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart

CONFIGURACIÓN SPAMASSASSIN

Ahora en el archivo.

pico /etc/spamassassin/local.cf

Agregaremos los plugin adicionales para aumentar la detección de spam.

# dcc
use_dcc 1
dcc_path /usr/bin/dccproc

#pyzor
use_pyzor 1
pyzor_path /usr/bin/pyzor

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

#bayes
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1

En el mismo archivo de configuracion debemos descomentar algunas líneas


Tales como:

Rewrite_header subject ******SPAM****


Report _safe 1
Required_score 0.3

Las cual especifica que todo mensaje que sea considerado spam se marcara
así ****SPAM**** y el nivel con el que trabajara el spam.

Ahora descomentaremos los plugin con los que va a trabajar el spamassassim

64
En el archivo.

pico /etc/spamassassin/v310.pre
´
Plugins:

loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Pyzor
loadplugin Mail::SpamAssassin::Plugin::Razor2
loadplugin Mail::SpamAssassin::Plugin::SpamCop
loadplugin Mail::SpamAssassin::Plugin::AWL
loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject
loadplugin Mail::SpamAssassin::Plugin::MIMEHeader
loadplugin Mail::SpamAssassin::Plugin::ReplaceTags

Ahora configuraremos el spamassassim para que se ejecute como demonio.


En el archivo.

pico /etc/default/spamassassin

El archivo debe de tener este aspecto.

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

Ahora reiniciaremos el spamassassim y el amavis.

/etc/init.d/spamassassin start
/etc/init.d/amavis restart

Ya con esta configuracion nuestro servidor de correo todo mensaje


considerado correo basura será tomado como spam o los mensajes que
contengan virus ya podrá ser detectados.

CONFIGURACIÓN DEL SERVIDOR DE CORREO SEGURO

SSL PARA CORREO

SSL (security sockets layer) protocolo de capa de conexión segura la cual


proporciona autenticación y privacidad de la información que viaja por la
Internet.

65
Ahora crearemos una entidad certificadora para obtener los certificados y las
llaves para la seguridad de nuestro sitio Web.

pico /etc/ssl/mail.cnf

Añadir el siguiente contenido y le haremos ciertas modificaciones.

e = Niedersachsen
localityName = Lueneburg
organizationName = Projektfarm GmbH
organizationalUnitName = IT
commonName = debian.diensten.com
emailAddress = postmaster@diensten.com
[ server_cert ]
basicConstraints = critical, CA:FALSE
subjectKeyIdentifier = hash
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
nsCertType = server
nsComment = "mailserver"

tales como: [ 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
stateOrProvinceNam

66
Ahora crearemos el certificado ssl de la siguiente forma:
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

Nos debe de mostrar lo siguiente:

Y ajustar los derechos de la clave para que solo el root pueda leerlo.

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

CERTIFICADO SSL PARA EL MMC Y EL WEBMAIL

Ahora le daremos seguridad tanto a la consola administrativa del mandriva


como a la interfaz squirremail.

En primer lugar debemos de crear un archivo ssl en el apache2 de la siguiente


manera.

mkdir /etc/apache2/ssl/

67
Ahora pediremos el certificado para la mmc

openssl req -new -x509 -keyout /etc/apache2/ssl/mmc.key -out


/etc/apache2/ssl/mmc.crt -days 365 –nodes

Ahora debemos dale permisos a la llave mmc.key.

chmod 600 /etc/apache2/ssl/mmc.key

MMC DE FORMA SEGURA

CREAR HOST VIRTUALES

En primer lugar vamos a crear host virtuales tanto para las conexiones http y
https

Crearemos un hostvirtual para http la creamos en el archivo sites –avalaible


pero con el nombre mmc

De la siguiente forma:

pico /etc/apache2/sites-available/mmc

Y agregamos la siguiente configuracion

<VirtualHost 192.168.0.10:80>

ServerName debian.diensten.com

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

</VirtualHost>

Crearemos un Hostvirtual para https para las conexiones seguras en el archivo


de configuración sites-avalaible pero con el nombre mmcs.

De la siguiente forma

pico /etc/apache2/sites-available/mmcs

Agregaremos la siguiente configuracion

NameVirtualHost 192.168.0.10:443

68
<VirtualHost 192.168.0.10:443>

ServerName debian.diensten.com
ServerAdmin Administrator@diensten.com
DocumentRoot /usr/share/mmc/

SSLEngine on
SSLCertificateKeyFile ssl/mmc.key
SSLCertificateFile ssl/mmc.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
CustomLog /var/log/apache2/mmc_access.log combined
LogLevel warn

</VirtualHost>

WEBMAIL DE FORMA SEGURA

Ahora crearemos host virtuales para que redireccione el webmail (squirremail)


de forma segura como lo hicimos anteriormente con el mmc.

Nota: también debemos de crear los certificados para webmail como se


crearon los del mmc

En primer lugar vamos a crear host virtuales tanto para las conexiones correo
y correos de esa forma llamaremos los archivos.

Hostvirtual para correo la creamos en el archivo sites –avalaible

De la siguiente forma:

pico /etc/apache2/sites-available/correo

Y agregamos la siguiente configuracion

69
<VirtualHost 192.168.0.10:80>

ServerName debian.diensten.com

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

</VirtualHost>

Hostvirtuales para correos también se creara el archivo de configuracion sites-


avalaible.

De la siguiente forma

pico /etc/apache2/sites-available/correo

Agregaremos la siguiente configuracion

<VirtualHost *:80>
ServerName correo.diensten.com
RewriteEngine On
RewriteCond %{ HTTPS} off
RewriteRule (.*) https://correo.diensten.com
</VirtualHost>

Alias /squirrelmail /usr/share/squirrelmail


# users will prefer a simple URL like http://webmail.diensten.com
NameVirtualHost *:80 #He aquí el problema, debe ser 80 y no 443
<VirtualHost *:443>
DocumentRoot /usr/share/squirrelmail
ServerName webmail.diensten.com
ServerAdmin Administrator@diensten.com
SSLEngine on
SSLCertificateKeyFile ssl/correo.key
SSLCertificateFile ssl/correo.crt
SSLProtocol all
SSLCipherSuite
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>

70
<IfModule mod_php5.c>
php_flag register_globals off
</IfModule>
<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>

Ahora agregaremos el puerto por donde se escucha la configuracion del


apache.

En el archivo port.Conf Es donde se define los puertos 443 y el 80 los cuales


son por donde correrán nuestras paginas tanto como la del mmc y el
squirremail.

pico /etc/apache2/ports.conf

Agregamos al archivo las siguientes líneas.

listen 80
listen 443

Ahora se habilitara los sitios Web que fueron creados.

a2ensite http
a2ensite https

Ahora debemos de reescribir lo módulos de los sitios Web.

a2enmod rewrite

Ahora de procederá a cargar los módulos de ssl par que así pueda funcionar la
seguridad de los sitios creados.

a2enmod ssl

Ahora reiniciaremos el apache para que los cambios tengan efecto.

71
/etc/ini.d/apache2 restart

Ahora en nuestro navegador ingresaremos nuestra URL para ingresar a la


consola administrativa de mandriva http://debian.diensten.com/mmc/ antes de
mostrar como redirecciona de forma segura nos sale el siguiente aviso el cual
nos pedirá que se debe tener un certificado para poder visualizar el contenido
del sitio web. Le damos ok

Aquí nos dicen que si aceptamos el certificado para podernos conectar de


formas segura a nuestro sitio Web le damos ok

72
Aquí me estoy conectando a mi mmc de forma segura.

Aquí me estoy conectando a mi squirremail de forma segura.

Ahora ya tenemos listos nuestro servidor correo integrado con todos los
componentes necesarios. Y funcionando perfectamente.

73
CONCLUSIONES

Con la elaboración de este manual se logro el objetivo propuesto el cual era de


montar un servidor de correo totalmente funcional y de alto rendimiento el cual
cumpliera con ciertas expectativas en cuanto a su estructura, seguridad, y
funcionalidad.

Además se demuestra que implementar un servidor no es nada difícil solo se


necesita tener claro todo concepto para poderse integrar.

El manual es una gran ayuda para toda aquella persona que deba implementar
un servidor de correo ya que aquí podrá encontrar todas las herramientas
necesarias para hacerlo y además se especifica para qué es cada componente.

La realización de este proyecto fue de gran utiliza pues se logro lo que se


quería lo cual era aprender a implementar un servidor de correo seguro y de
integrarlo con varios componentes para así hacerlo mas funcional.

74
BIBLIOGRAFIA

Para la realización de este manual se utilizo varios sitios Web los cuales fueron
de gran ayuda. Pues a partir de estos sitios se pudo se plasmar una completa
información de lo significa instalar tanto un servidor de correo como un servidor
de directorio como lo es mandriva.

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

• http://www.google.com.co

• http://www.wikipedia.org

• http://es.kioskea.net/

75

You might also like