Este es el manual paso paso de la instalación y la configuracion de un servidor de correo como lo es el postfix en debia...
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 2. objetivos 2.1 objetivo genera 2.2 objetivo específicos 3. servidor de directorio mandriva 4. instalacion 4.1 preparación del sistema 4.2 sistemas de archivos ACL 4.3 repositorios 4.4 paquetes necesarios para la configuración 5 configuraciones 5.1 configuración ldap 5.2 configuración samba 5.3 configuracion nss ldap 5.4 configuracion pam ldap 5.5 configuracion bind 5.6 configuracion dhcp 6 configuracion de los plugins del la mmc 6.1 configuracion plugins base 6.2 configuracion plugins mail 6.3 configuracion plugins network 6.4 configuracion del dns por la mmc 6.5 configuracion del dhcp por la mmc 6.6 unir equipos al dominio. 7 configuracion del servidor de correo 7.1 configuracion sasl 7.2 configuracion postfix 7.3 dominios y usuarios virtuales 7.4 configuracion dovecot 7.5 configuracion amavis 7.6 configuracion spammassassim 8 configuracion correo seguro 8.1 ssl para correo 8.2 certificado ssl para la mmc y webmail 8.3 mmc de forma segura 8.4 webmail de forma segura 9 conclusiones 10 bibliografías
2
3 4 4 4 5 5 5 7 8 9 15 15 20 28 29 34 34 35 35 37 38 40 42 43 44 44 46 51 58 60 64 65 65 67 68 69 74 75
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
• • • • • •
4
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.
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 mmcweb-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-webproxy mmc-web-samba mmc-agent python-mmc-plugins-tools python-mmcbase python-mmc-mail python-mmc-network python-mmc-proxy python-mmcsamba 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
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-mmcbase/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 localityName organizationName organizationalUnitName commonName emailAddress [ server_cert ] basicConstraints subjectKeyIdentifier keyUsage extendedKeyUsage nsCertType nsComment tales como: [ req ] default_bits default_keyfile distinguished_name prompt string_mask x509_extensions [ req_distinguished_name ] countryName stateOrProvinceNam
66
= Niedersachsen = Lueneburg = Projektfarm GmbH = IT = debian.diensten.com =
[email protected] = critical, CA:FALSE = hash = digitalSignature, keyEncipherment = serverAuth, clientAuth = server = "mailserver"
= 2048 = privkey.pem = req_distinguished_name = no = nombstr = server_cert = DE
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
ServerName debian.diensten.com RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
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
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 AllowOverride None Order allow,deny Allow from all php_flag short_open_tag on SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128 ErrorLog /var/log/apache2/mmc_error.log CustomLog /var/log/apache2/mmc_access.log combined LogLevel warn
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
ServerName debian.diensten.com RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Hostvirtuales para correos también se creara el archivo de configuracion sitesavalaible. De la siguiente forma pico /etc/apache2/sites-available/correo
Agregaremos la siguiente configuracion ServerName correo.diensten.com RewriteEngine On RewriteCond %{ HTTPS} off RewriteRule (.*) https://correo.diensten.com 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 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 Options Indexes FollowSymLinks php_flag register_globals off
70
php_flag register_globals off DirectoryIndex index.php
# access to configtest is limited by default to prevent information leak order deny,allow allow from all SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
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.
75
•
http://www.howtoforge.com/mandriva-directory-server-on-debian-etch
•
http://www.google.com.co
•
http://www.wikipedia.org
•
http://es.kioskea.net/