Servidor de CorreoMultidominio
SERVIDOR DE CORREO MULTIDOMINIOProblemática:Al analizar la demanda de sus servicios de correo electrónico, una empresa de ...
HOW TOPara comenzar nuestro servidor de correo debemos configurar nuestro DNS:                                            ...
@     IN     SOA       mailhosting.com.sv. dns.mailhosting.com.sv. (                                 2        ; Serial    ...
};                 Ahora creamos el archivo para la zona inversa                  #nano /etc/bind/db.192                 ...
POSTFIXPostfix es un servidor de correo de software libre, un programa informático para elenrutamiento y envío de correo e...
   Luego vemos si está escuchando #netstat –tapn | grep LISTEN   Agregamos un grupo para postfix    # addgroup -gid 1005...
Se agregan las siguientes líneas al archivo de configuración para utilizar        dominios virtuales:        virtual_mailb...
mail fromcualquiercosa@cualquiercosa.com>    250 2.1.0 Ok    rcpt tojuan@protocolos.com>    250 2.1.5 Ok    DATA    354 En...
LDAPLDAP son las siglas de Lightweight Directory Access Protocol (Protocolo Ligero de Acceso aDirectorios) que hacen refer...
   Pide la contraseña de administración de ldap   Para ver en qué puerto está escuchando ldap se pone    #netstat -tapn ...
# ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config" Ahora hay que pasar el esquema a ldif pero antes vemos el esquema   ...
#cp/tmp/directorio/cn=config/cn=schema/cn={4}authldap.ldif           /etc/ldap/slapd.d/cn=config/cn=schema/        Luego ...
      Ahora vamos a crear un usuario para cada parte de nuestro árbol para dominiosvamos a crear protocolos.com , vamos a...
objectclass: person        objectclass: top        sn: nick        uid: beatriz@protocolos.com        userpassword: {MD5}M...
   También se crea un archive .cf para los usuarios    #nano /etc/postfix/ldap/maps.cf    server_host = 127.0.0.1    serv...
SERVIDOR IMAP   Instalar Courier    #apt-get install courier-imap Courier-pop    Luego hará una pregunta y se contesta qu...
   Luego vamos al archivo de configuración    # nano /etc/courier/authldaprc    LDAP_URI           ldap://localhost (aquí...
# telnet localhost 110Trying 127.0.0.1...Connected to protocolos.mailhosting.com.sv.Escape character is ^].+OK Hello there...
HTTP   Se instala:    #apt-get install apache2-mpm-prefork   ahora vamos a crear sitios virtuales los cuales nos servira...
</Directory>   Creamos el archivo donde ira a buscar nuestra pagina a mostrar    #mkdir /var/www/mailhosting   Habilitam...
WEB MAIL           Un webmail es un cliente de correo electrónico,              que   provee           una interfaz web po...
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...
   vamos a editar el archivo / etc / spamassassin / local.cf y hacer que se    parezca a lo siguiente:    #Enable the Bay...
Spamassassin unix -              n    n      -      -      pipe                             User=spamd argv=/usr/bin/spamc...
Upcoming SlideShare
Loading in...5
×

Correo multidomino

635

Published on

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

Published in: Self Improvement
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
635
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Correo multidomino"

  1. 1. Servidor de CorreoMultidominio
  2. 2. 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:
  3. 3. 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
  4. 4. @ 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”;
  5. 5. };  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.
  6. 6. 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
  7. 7.  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
  8. 8. 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)
  9. 9. 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
  10. 10. 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)
  11. 11.  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:
  12. 12. # 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
  13. 13. #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
  14. 14.  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
  15. 15. 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
  16. 16.  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.
  17. 17. 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.
  18. 18.  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:
  19. 19. # 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.
  20. 20. 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
  21. 21. </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/
  22. 22. 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ú:
  23. 23. Luego aparece esta pantalla y elegimos Courier:
  24. 24.  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”
  25. 25.  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
  26. 26. 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

×