• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Correo multidomino
 

Correo multidomino

on

  • 827 views

por acá les dejo un how to para elaborar un correo multidominio... espero les guste...

por acá les dejo un how to para elaborar un correo multidominio... espero les guste...

Statistics

Views

Total Views
827
Views on SlideShare
827
Embed Views
0

Actions

Likes
0
Downloads
15
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Correo multidomino Correo multidomino Document Transcript

    • Servidor de CorreoMultidominio
    • SERVIDOR DE CORREO MULTIDOMINIOProblemática:Al analizar la demanda de sus servicios de correo electrónico, una empresa de hosting seda cuenta que posee recursos de sobra, y decide empezar a vender servicios de hosting decorreo electrónico. Por tanto necesita configurar servicios de correo tolerantes a fallos,que sean capaces de responder a múltiples dominios y que autentique a sus clientes enuna base de datos de credenciales (LDAP). El servicio de correo que se brinde dependeráde la clasificación de los clientes, permitiéndoles determinadas casillas de correo, espaciode almacenamiento, antispam y antivirus, correo electrónico seguro, y otros elementos,en función del tipo de contrato que se establezca.Para solucionar esta problemática se ha realizado un servidor multidominio utilizando lassiguientes herramientas:  LDAP como base de datos para almacenar la información de los diferentes dominios y usuarios que se tendrán.  POSTFIX como agente de transferencia de correo.  COURIER como servidor IMAP  Apache2  BIND para DNS  Squirrelmail como web mail  Spamassassin para controlar el spamEl siguiente es un esquema de red de nuestro servidor:
    • HOW TOPara comenzar nuestro servidor de correo debemos configurar nuestro DNS: DNS Domain Name System o DNS (sistema de nombres de dominio) es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado a Internet o a una red privada  Instalamos #apt-get install bind9  De Nuevo vemos en que Puerto está escuchando #netstat -tapn  Primero creamos la zona para el dominio que deseamos crear en el archivo #/etc/bind/named.conf.local Y agregamos la zona con este formato: zone "mailhosting.com.sv"{ type master; file "/etc/bind/db.mailhosting"; }; Ahora creamos el archivo de la zona que lleva por nombre db.mailhosting,podemos copiar uno que ya existe en los archivos de bind de esta manera: # cp /etc/bind/db.local /etc/bind/db.mailhosting Y nos quedaria el archive modificado de la siguiente manera: ; archivo de configuracion de la zona ; $TTL 604800
    • @ IN SOA mailhosting.com.sv. dns.mailhosting.com.sv. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS mailhosting.com.sv. @ IN A aqui va al ip www IN CNAME mailhosting.com.sv. @ IN MX 10 mailhosting.com.sv. La configuración de este archivo depende de nuestra configuración y de nuestra ip que tenemos asignada. Luego reiniciamos el servicio #/etc/init.d/bind9 restart Luego ponemos en el archivo #nano /etc/resolv.conf y agregamos la línea nameserver “y la ip que se tiene asignada” Para probar los archivos de la zona se utiliza el comando named-checkconf –z aquínos muestra los errores que nuestro archivo tiene.  Para probar si nos resuelve el dns hacemos ping y el dominio y veremos si nos responde y pone la ip que tiene asignada.  El siguiente paso es crear las zonas inversas Creamos una nueva zona en el archivo #/etc/bind/named.conf.local zone "1.168.192.in-addr.arpa"{ type master; file "/etc/bind/db.192”;
    • };  Ahora creamos el archivo para la zona inversa #nano /etc/bind/db.192 ; ; archive de la zona inversa ; $TTL 604800 @ IN SOA mailhosting.com.sv. dns.mailhosting.com.sv. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS localhost. 2 IN PTR mailhosting.com.sv. Reiniciamos de Nuevo el servicio #/etc/init.d/bind restart Y se pueden verificar los archivos de la zona de Nuevo y hacer ping con nuestra ippara ver si resuelve la zona inversa.
    • POSTFIXPostfix es un servidor de correo de software libre, un programa informático para elenrutamiento y envío de correo electrónico,Configurando POSTFIX:  Instalar Postfix al instalarlo pedirá el nombre del dominio: #apt-get install postfix
    •  Luego vemos si está escuchando #netstat –tapn | grep LISTEN Agregamos un grupo para postfix # addgroup -gid 1005 vmail (el numero de id de grupo es importante) Ahora creamos la carpeta donde se irán a almacenar los archivos #mkdir /home/vmail Ahora creamos un usuario en el grupo vmail este usuario será el encargado de la entrega de los correos. #useradd –d /home/vmail –g 1005 –u 1005 vmail Le demos permisos # chown -R vmail:vmail /home/vmail/ Ahora se configura en archivo principal de configuración de Postfix # nano /etc/postfix/main.cf
    • Se agregan las siguientes líneas al archivo de configuración para utilizar dominios virtuales: virtual_mailbox_domain= /etc/postfix/vhost.txt virtual_mailbox_base= /home/vmail virtual_mailbox_maps= hash:/etc/postfix/maps.txt virtual_uid_maps= static:1005 virtual_gid_maps= static:1005 Ahora vamos a crear los archivos vhost.txt y maps.txt #nano /etc/postfix/vhost.txt (este archivo llevara en nombre del dominio) #nano /etc/postfix/maps.txt (es importante que lleve la pleca al final la dirección) juan@protocolos.com protocolos.com/juan/  Ahora vamos a hacer que el archivo maps.txt lo pueda leer postfix como hash # postmap -f /etc/postfix/maps.txt  Ahora reiniciamos el servicio para que se lleven a acabo todos los cambios. # /etc/init.d/postfix restart  Ahora ya podemos realizar una prueba para ver si está bien el archivo # postmap -q juan@protocolos.com hash:/etc/postfix/maps.txt Esto nos debe de devolver el mailbox de la siguiente manera: protocolos.com/juan/  Ahora vamos a probar mandar correos para que cree las carpetas correspondientes # telnet localhost 25 Trying 127.0.0.1... Connected to protocolos.mailhosting.com.sv. Escape character is ^]. 220 protocolos.mailhosting.com.sv ESMTP Postfix (Debian/GNU)
    • mail fromcualquiercosa@cualquiercosa.com> 250 2.1.0 Ok rcpt tojuan@protocolos.com> 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> holaaa . 250 2.0.0 Ok: queued as E0CE46FC77 quit Para verificar que mando el correo se deben de ver si creo las carpetas del usuario en este caso juan@protocolos.com las carpetas están en /home/vmail/protocolos/juan También se puede verificar en el log /var/log/mail.log
    • LDAPLDAP son las siglas de Lightweight Directory Access Protocol (Protocolo Ligero de Acceso aDirectorios) que hacen referencia a un protocolo a nivel de aplicación el cual permite elacceso a un servicio de directorio ordenado y distribuido para buscar diversa informaciónen un entorno de red. LDAP también es considerado una base de datos (aunque susistema de almacenamiento puede ser diferente) a la que pueden realizarse consultas.Antes de configurar ldap se debe cambiar el nombre del dominio(protocolos.mailhosting.com.sv)Configurar ldap:  Instalar (slapd, ldap-utils)
    •  Pide la contraseña de administración de ldap Para ver en qué puerto está escuchando ldap se pone #netstat -tapn | grep LISTEN Se detiene slapd #/etc/init.d/slapd stop Luego instalamos Courier-authlib-ldap para obtener el esquema Luego de que se baje se descomprime gzip –d #gzip –d /usr/share/doc/Courier-authlib-ldap/authldap.schema.gz Al descomprimir copiamos el esquema a los esquemas de ldap #cp /usr/share/doc/Courier-auth-ldap/authldap /etc/ldap/schema. Ahora agregamos el esquema:  Antes de agregar el esquema tenemos que verificar que nuestro árbol si está bien con esta instrucción:
    • # ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config" Ahora hay que pasar el esquema a ldif pero antes vemos el esquema authldap.schema y vemos las dependencias del esquema al verlo vemos que este depende de nis.schema el cual depende de cosine.schema. En el esquema se deben de descomentar las siguientes líneas si no causara conflictos: #attributetype ( 1.3.6.1.4.1.10018.1.1.14 NAME mailhost # DESC Host to which incoming POP/IMAP connections should be proxied # EQUALITY caseIgnoreIA5Match # SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) Ahora hay que crear un archivo que incluya todos los schemas debemos tener en cuenta las dependencias. El archivo se creara en /tmp y tener cualquier nombre por ejemplo /tmp/archivo.conf el archivo tendrá lo siguiente: include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/authldap.schema Ahora se crea el directorio /tmp/directorio Luego haremos un slapdtest #slaptest -f /tmp/archivo.conf -F /tmp/directorio Luego lo copiamos a los esquemas de ldap de esta manera
    • #cp/tmp/directorio/cn=config/cn=schema/cn={4}authldap.ldif /etc/ldap/slapd.d/cn=config/cn=schema/  Luego damos los permisos convenientes para ldap y reiniciamos ldap # chown openldap:openldap /etc/ldap/slapd.d/cn=config/cn=schema/cn={4}authldap.ldif # /etc/init.d/slapd restart Para crear los usuarios creamos un archivo con lo siguiente: //Este usuario lector solo se utilizara con permisos de lectura dn: cn=lector,dc=mailhosting,dc=com,dc=sv cn: lector objectclass: person objectclass: simpleSecurityObject objectclass: top sn: lector userpassword: {MD5}3TgaBQ8Zh+e1x7cylv1JpQ== dn: o=administradores,dc=mailhosting,dc=com,dc=sv o: administradores objectclass: organization objectclass: top dn: o=Dominios,dc=mailhosting,dc=com,dc=sv o: Dominios objectclass: organization objectclass: top Luego se agregan entidades en nuestro árbol en este caso se crearan dos una para dominios y una para administradores: #ldapadd -D "cn=admin,dc=mailhosting,dc=com,dc=sv" -W -f Escritorio/base.ldif
    •  Ahora vamos a crear un usuario para cada parte de nuestro árbol para dominiosvamos a crear protocolos.com , vamos a crear un usuario Beatriz para el dominiosprotocolos.com dn: uid=administrador@protocolos.com,o=administradores,dc=mailhosting,dc=co m,dc=sv cn: protocolos.com objectclass: person objectclass: shadowAccount objectclass: top shadowflag: 1 sn: protocolos.com uid: administrador@protocolos.com userpassword: {MD5}gTaWsOiOoF1FOAwf11tAcA== dn: dc=protocolos.com,o=Dominios,dc=mailhosting,dc=com,dc=sv businesscategory: 3 dc: protocolos.com l: activa o: protocolos.com objectclass: dcObject objectclass: organization objectclass: top dn:uid=beatriz@protocolos.com,dc=protocolos.com,o=Dominios,dc=mailhosti ng,dc=com,dc=sv cn: beatriz disableshared: activa homedirectory: /home/vmail mail: beatriz@protocolos.com mailbox: protocolos.com/beatriz/ objectclass: CourierMailAccount
    • objectclass: person objectclass: top sn: nick uid: beatriz@protocolos.com userpassword: {MD5}MjJCCXNoV35vOqwDxtzttg== Luego agregamos el archivo a ldap #ldapadd -D "cn=admin,dc=mailhosting,dc=com,dc=sv" -W -f Escritorio/dominio.ldif UNIR LDAP CON POSTFIX  Se instala el paquete postfix-ldap #apt-get install postfix-ldap  Creamos una carpeta dentro de postfix para guardar los archivos de consulta a ldap. #mkdir /etc/postfix/ldap  Ahora vamos a crear un archivo .cf para poner los dominios desde ldap. #nano /etc/postfix/ldap/dominios.cf server_host = 127.0.0.1 server_port = 389 version = 3 ldap_bind= yes bind_dn = cn=lector,dc=mailhosting,dc=com,dc=sv bind_pw = lector search_base = o=Dominios,dc=mailhosting,dc=com,dc=sv query_filter = (&(objectClass=dcObject)(l=activa)(dc=%s)) result_attribute = dc
    •  También se crea un archive .cf para los usuarios #nano /etc/postfix/ldap/maps.cf server_host = 127.0.0.1 server_port = 389 version = 3 ldap_bind= yes bind_dn = cn=lector,dc=mailhosting,dc=com,dc=sv bind_pw = lector search_base = o=Dominios,dc=mailhosting,dc=com,dc=sv query_filter = (&(objectClass=CourierMailAccount)(disableshared=activa)(mail=%s)) result_attribute = mailbox Ahora hay que modificar el archivo main.cf de postfix para que trabaje con ldap: # nano /etc/postfix/main.cf virtual_mailbox_domains=ldap:/etc/postfix/ldap/dominios.cf virtual_mailbox_maps= ldap:/etc/postfix/ldap/maps.cf Otra vez para probar se puede mandar correo mediante telnet y ver el log.
    • SERVIDOR IMAP Instalar Courier #apt-get install courier-imap Courier-pop Luego hará una pregunta y se contesta que no: Luego vemos en que puerto esta escuchanto #netstat –tapn Ahora nos vamos al archivo de configuración de courier # nano /etc/courier/authdaemonrc Y cambiaremos esta línea authmodulelist="authpam" por esta authmodulelist="authpam authldap" para que este ligado con ldap pero si existe algún problema esto se puede modificar, el DEBUG_LOGIN=1 para ver los errores.
    •  Luego vamos al archivo de configuración # nano /etc/courier/authldaprc LDAP_URI ldap://localhost (aquí se pone la dirección de nuestro ldap en nuestro caso localhost) LDAP_BASEDN o=Dominios,dc=mailhosting,dc=com,dc=sv (en esta se modifica la base donde se ira a buscar) LDAP_BINDPW sucontraseña (y aquí se pone la contraseña para ldap) LDAP_MAIL mail (esta es la respuesta que queremos en nuestro caso en mail ) Descomentamos estas línea: # LDAP_FILTER (objectClass=CourierMailAccount) # LDAP_GLOB_UID vmail # LDAP_GLOB_GID vmail # LDAP_MAILDIRQUOTA quota Y colocamos el query LDAP_FILTER (&(objectClass=CourierMailAccount)(disableshared=activa)) Comentar esta linea: #LDAP_DEFAULTDELIVERY defaultDelivery Ahora se reinicia # /etc/init.d/Courier-authdaemond restart Ahora se puede probar:
    • # telnet localhost 110Trying 127.0.0.1...Connected to protocolos.mailhosting.com.sv.Escape character is ^].+OK Hello there.user beatriz@protocolos.com+OK Password required.pass beatriz+OK logged in.
    • HTTP Se instala: #apt-get install apache2-mpm-prefork ahora vamos a crear sitios virtuales los cuales nos serviran para el ordenamiento de nuestor servidor. Copiamos el sitio por default que tiene apache para crear nuestro sitios todo esto lo hacemos en sites-available # cp /etc/apache2/sites-available/default /etc/apache2/sites- available/malihosting Ahora modificamos el archivo # /etc/apache2/sites-available/mailhosting Se deja el archivo de la siguiente manera ServerAdmin webmaster@localhost ServerName www.mailhosting.com.sv ServerAlias mailhosting.com.sv DocumentRoot /var/www/mailhosting <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/mailhosting/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all
    • </Directory> Creamos el archivo donde ira a buscar nuestra pagina a mostrar #mkdir /var/www/mailhosting Habilitamos el dominio virtual # a2ensite mailhosting Ahora recargaremos el servidor apache # /etc/init.d/apache2 reload Copiamos una pagina inicial para que aparezca en nuestro dominio #cp /var/www/index.html /var/www/mailhosting/
    • WEB MAIL Un webmail es un cliente de correo electrónico, que provee una interfaz web por la que acceder al correo electrónico. Es esta ocasión utilizamos el web mail Squirrelmail  Instalamos #apt-get install squirrelmail Luego lo configuramos # squirrelmail-configure: Aparece el siguiente menú:
    • Luego aparece esta pantalla y elegimos Courier:
    •  Ahora necesitamos crear un link para que se pueda entrar a squirrelmail Entramos a la carpeta del dominio #cd /var/www/mailhosting Y creamos ahí el link #ln -s /usr/share/squirrelmail/ correo Ya con esto podemos entrar a un navegador y entrar al correo que hemos creado. Configuración para reconocer Spam  Instalar el paquete de spamassassin #apt-get install spamassassin spamc  vamos a crear un usuario específico y un grupo de spamassassin #groupadd -g 5001 spamd #useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd #mkdir /var/lib/spamassassin #chown spamd:spamd /var/lib/spamassassin  Ahora, tenemos que cambiar algunos parámetros en / etc / default / spamassassin y debe de quedar de la siguiente manera: ENABLED=1 SAHOME=”/var/lib/spamassassin/” OPTIONS=”—creat-prefs –max-children 5 –username spamd –helper-home- Dir ${SAHOME} –s ${SAHOME}spamd.log” PIDFILE=”${SAHOME}spamd.pid”
    •  vamos a editar el archivo / etc / spamassassin / local.cf y hacer que se parezca a lo siguiente: #Enable the Bayes system Use_bayes 1 Use_bayes_rules 1 #Eneble Bayes auto-learning Bayes_auto_learn 1 #Enable or disable network checks Skip_rb1_checks 0 Use_razor2 0 Use_dcc 0 Use_pyzor 0 Iniciamos el servicio #/etc/init.d/spamassassin start Ahora, tenemos que decirle a postfix para va a usar spamassassin. En nuestro caso,spamassassin va a ser invocado una vez postfix ha terminado con el correo electrónico. para decirle a postfix que va a usar spamassassin, vamos a editar el archivo / etc / postfix /master.cf y cambiar la línea: Smtp inet n - - - - smtp Y que aparezca esto: Smtp inet n - - - - smtp -o content_filter=spamassassin Y agregamos las siguientes lineas
    • Spamassassin unix - n n - - pipe User=spamd argv=/usr/bin/spamc –f –e /usr/sbin/sendmail –io –f $(sender) $(recipient) Y al final reiniciamos postfix #/etc/init.d/postfix reload