8701190 Manual Servidor de Correo en Debian

75
1 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

Transcript of 8701190 Manual Servidor de Correo en Debian

Page 1: 8701190 Manual Servidor de Correo en Debian

1

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

Page 2: 8701190 Manual Servidor de Correo en Debian

2

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

Page 3: 8701190 Manual Servidor de Correo en Debian

3

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.

Page 4: 8701190 Manual Servidor de Correo en Debian

4

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.

Page 5: 8701190 Manual Servidor de Correo en Debian

5

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.

Page 6: 8701190 Manual Servidor de Correo en Debian

6

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

Page 7: 8701190 Manual Servidor de Correo en Debian

7

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 /

Page 8: 8701190 Manual Servidor de Correo en Debian

8

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.

Page 9: 8701190 Manual Servidor de Correo en Debian

9

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.

Page 10: 8701190 Manual Servidor de Correo en Debian

10

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.

Page 11: 8701190 Manual Servidor de Correo en Debian

11

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.

Page 12: 8701190 Manual Servidor de Correo en Debian

12

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.

Page 13: 8701190 Manual Servidor de Correo en Debian

13

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.

Page 14: 8701190 Manual Servidor de Correo en Debian

14

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.

Page 15: 8701190 Manual Servidor de Correo en Debian

15

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

Page 16: 8701190 Manual Servidor de Correo en Debian

16

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

Page 17: 8701190 Manual Servidor de Correo en Debian

17

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.

Page 18: 8701190 Manual Servidor de Correo en Debian

18

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.

Page 19: 8701190 Manual Servidor de Correo en Debian

19

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.

Page 20: 8701190 Manual Servidor de Correo en Debian

20

. 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:

Page 21: 8701190 Manual Servidor de Correo en Debian

21

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í:

Page 22: 8701190 Manual Servidor de Correo en Debian

22

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.

Page 23: 8701190 Manual Servidor de Correo en Debian

23

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

Page 24: 8701190 Manual Servidor de Correo en Debian

24

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í:

Page 25: 8701190 Manual Servidor de Correo en Debian

25

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.

Page 26: 8701190 Manual Servidor de Correo en Debian

26

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"

Page 27: 8701190 Manual Servidor de Correo en Debian

27

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

Page 28: 8701190 Manual Servidor de Correo en Debian

28

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

Page 29: 8701190 Manual Servidor de Correo en Debian

29

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

Page 30: 8701190 Manual Servidor de Correo en Debian

30

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

Page 31: 8701190 Manual Servidor de Correo en Debian

31

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

Page 32: 8701190 Manual Servidor de Correo en Debian

32

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

Page 33: 8701190 Manual Servidor de Correo en Debian

33

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.

Page 34: 8701190 Manual Servidor de Correo en Debian

34

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

Page 35: 8701190 Manual Servidor de Correo en Debian

35

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

Page 36: 8701190 Manual Servidor de Correo en Debian

36

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

Page 37: 8701190 Manual Servidor de Correo en Debian

37

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

Page 38: 8701190 Manual Servidor de Correo en Debian

38

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

Page 39: 8701190 Manual Servidor de Correo en Debian

39

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

Page 40: 8701190 Manual Servidor de Correo en Debian

40

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

Page 41: 8701190 Manual Servidor de Correo en Debian

41

Listo esto significa que nos creo bien la zona dns.

Esta es nuestra zona creada.

Page 42: 8701190 Manual Servidor de Correo en Debian

42

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.

Page 43: 8701190 Manual Servidor de Correo en Debian

43

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>

Page 44: 8701190 Manual Servidor de Correo en Debian

44

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/

Page 45: 8701190 Manual Servidor de Correo en Debian

45

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

Page 46: 8701190 Manual Servidor de Correo en Debian

46

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 = +

Page 47: 8701190 Manual Servidor de Correo en Debian

47

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

Page 48: 8701190 Manual Servidor de Correo en Debian

48

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.

Page 49: 8701190 Manual Servidor de Correo en Debian

49

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.

Page 50: 8701190 Manual Servidor de Correo en Debian

50

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.

Page 51: 8701190 Manual Servidor de Correo en Debian

51

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

Page 52: 8701190 Manual Servidor de Correo en Debian

52

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.

Page 53: 8701190 Manual Servidor de Correo en Debian

53

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.

Page 54: 8701190 Manual Servidor de Correo en Debian

54

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

Page 55: 8701190 Manual Servidor de Correo en Debian

55

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.

Page 56: 8701190 Manual Servidor de Correo en Debian

56

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.

Page 57: 8701190 Manual Servidor de Correo en Debian

57

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

Page 58: 8701190 Manual Servidor de Correo en Debian

58

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

Page 59: 8701190 Manual Servidor de Correo en Debian

59

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

Page 60: 8701190 Manual Servidor de Correo en Debian

60

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:storage 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.

Page 61: 8701190 Manual Servidor de Correo en Debian

61

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:

Page 62: 8701190 Manual Servidor de Correo en Debian

62

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.

Page 63: 8701190 Manual Servidor de Correo en Debian

63

En otra parte del mismo archivo agregaremos las siguientes líneas $forward _method = `smtp:127.0.0.1:10025`; $notify method = $forward_method;

Page 64: 8701190 Manual Servidor de Correo en Debian

64

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

Page 65: 8701190 Manual Servidor de Correo en Debian

65

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.

Page 66: 8701190 Manual Servidor de Correo en Debian

66

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

Page 67: 8701190 Manual Servidor de Correo en Debian

67

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/

Page 68: 8701190 Manual Servidor de Correo en Debian

68

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

Page 69: 8701190 Manual Servidor de Correo en Debian

69

<VirtualHost 192.168.0.10:443>

ServerName debian.diensten.com ServerAdmin [email protected] 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

Page 70: 8701190 Manual Servidor de Correo en Debian

70

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

Page 71: 8701190 Manual Servidor de Correo en Debian

71

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

Page 72: 8701190 Manual Servidor de Correo en Debian

72

/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

Page 73: 8701190 Manual Servidor de Correo en Debian

73

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.

Page 74: 8701190 Manual Servidor de Correo en Debian

74

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.

Page 75: 8701190 Manual Servidor de Correo en Debian

75

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/