instalacion de servidor de correo en centOS

Tema en 'Zona Linux' iniciado por panxolda20, 20 Nov 2014.

  1. panxolda20

    panxolda20 Usuario Nuevo nvl. 1
    37/41

    Registrado:
    19 Abr 2012
    Mensajes:
    414
    Me Gusta recibidos:
    14
    hola alquien sabe como instalar y configurar un servidor de correo en centOS, podria ayudar .si alquien tenido experiencia o lo que sea porfa
     
  2. janod21

    janod21 Usuario Habitual nvl.3 ★
    132/163

    Registrado:
    9 Ago 2007
    Mensajes:
    7.236
    Me Gusta recibidos:
    305
    La instalación se hizo en un VPS con distribución CentOS 5.3 La presente guía usa como referencia un dominio registrado que denominaremos ejemplo.org.


    Primero instalamos los paquetes necesarios:
    yum install sendmail*
    yum install cyrus*
    yum install dovecot
    yum install procmail
    yum install spamassassin

    [TABLE="width: 266"]
    [TR]
    [TD] [h=1]Sendmail[/h] [/TD]
    [/TR]
    [/TABLE]
    Hacemos una copia de la configuración inicial de Sendmail:
    cp /etc/mail/sendmail.mc /etc/mail/sendmail.mc.orig
    Empezamos a configurar Sendmail (modificando/añadiendo las siguientes líneas):
    nano /etc/mail/sendmail.mc

    [TABLE="width: 722"]
    [TR]
    [TD]dnl # Definimos un valor de “verbosidad” para los registros de Sendmail
    define(`confLOG_LEVEL', `20')dnl
    dnl # Deshabilita la autenticación en "plain text" cuando la conexión no es TLS
    define(`confAUTH_OPTIONS', `A p')dnl
    dnl # Definimos los mecanismos de autenticación permitidos
    TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
    define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
    dnl # Configuramos la carpeta y los nombres de los certificados que usaremos para la autenticación TLS/SSL
    define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
    define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl
    define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl
    define(`confSERVER_KEY', `/etc/pki/tls/certs/sendmail.pem')dnl
    dnl # Definimos los puertos donde Sendamil se pondrá a la escucha (25(smtp, 465(smtps) y 587(submission)
    DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
    DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
    DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
    dnl # No aceptamos correos desde dominios cuya dirección no se pueda resolver
    dnl FEATURE(`accept_unresolvable_domains')dnl
    dnl # Filtramos todos los correos en entrada con spamassassin-milter
    INPUT_MAIL_FILTER(`spamassassin', `S=unix:/var/run/spamassassin/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl
    define(`confMILTER_MACROS_CONNECT',`t, b, j, _, {daemon_name}, {if_name}, {if_addr}')dnl
    define(`confMILTER_MACROS_HELO',`s, {tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer}')dnl
    [/TD]
    [/TR]
    [/TABLE]
    Guardamos los cambios y creamos el archivo de configuración de Sendmail:
    cd /etc/mail
    make -C /etc/mail

    Ahora podemos crear un usuario de prueba para luego utilizarlo en la configuracion de Outlook Express:
    useradd -c "fulano" -s /sbin/nologin fulano
    Le asignamos una contraseña:
    passwd fulano
    Changing password for user fulano.
    New UNIX password:
    BAD PASSWORD: it is based on a dictionary word
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.

    Para la autenticación con SASL tenemos que crear un archivo con las siguientes líneas:
    cd /usr/lib/sasl2
    nano Sendmail.conf
    pwcheck_method:saslauthd

    Con la primera línea escogemos el método de autorización. Guardamos los cambios y configuramos sasl2 para que arranque en automático:
    chkconfig saslauthd on
    Ahora le decimos a Sendmail desde cuales dominios pueden salir los correos:
    nano /etc/mail/local-host-names
    localhost
    localhost.localdomain
    ejemplo.org

    Guardamos los cambios y pasamos a la creación del certificado como lo hemos definido en la configuracion de Sendmail. El certificado creado en esta forma
    cd /etc/pki/tls/certs
    make sendmail.pem
    umask 77 ; \
    PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
    PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
    /usr/bin/openssl req -utf8 -newkey rsa:1024 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 -set_serial 0 ; \
    cat $PEM1 > sendmail.pem ; \
    echo "" >> sendmail.pem ; \
    cat $PEM2 >> sendmail.pem ; \
    rm -f $PEM1 $PEM2
    Generating a 1024 bit RSA private key
    ........++++++
    ...........................++++++
    writing new private key to '/tmp/openssl.l23974'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [GB]:CO
    State or Province Name (full name) [Berkshire]:Magdalena
    Locality Name (eg, city) [Newbury]:Santa Marta
    Organization Name (eg, company) [My Company Ltd]:Ejemplo
    Organizational Unit Name (eg, section) []:Mail
    Common Name (eg, your name or your server's hostname) []:mail.ejemplo.org
    Email Address []:[email protected]
    Importante definir en Common Name el registro MX que usaremos para conectarnos al servidor Sendmail.

    [TABLE="width: 305"]
    [TR]
    [TD]
    [h=1]Dovecot[/h]
    [/TD]
    [/TR]
    [/TABLE]
    Una vez que tengamos el server POP3/IMAP instalado modificamos el archivo de configuracion:
    nano /etc/dovecot.conf
    Añadimos/modificamos las siguientes líneas:
    [TABLE="width: 460"]
    [TR]
    [TD] # activamos los protocolos que vamos a utilizar
    protocols = imap imaps pop3 pop3s
    # carpeta y nombres de los certificados (los mismos que Sendmail)
    ssl_cert_file = /etc/pki/tls/certs/sendmail.pem
    ssl_key_file = /etc/pki/tls/certs/sendmail.pem
    ssl_ca_file = /etc/pki/tls/certs/sendmail.pem
    # Registramos los eventuales errores al utilizar SSL
    verbose_ssl = yes

    [/TD]
    [/TR]
    [/TABLE]
    Gurdamos los cambios y configuramos Dovecot para que arranque en automático:
    chkconfig dovecot on

    [TABLE="width: 316"]
    [TR]
    [TD]
    [h=1]SpamAssassin[/h]
    [/TD]
    [/TR]
    [/TABLE]
    Ahora podemos pasar a la configuracion de Spamassassin:
    cd /etc/mail/spamassassin
    mv local.cf local.cf.orig
    nano local.cf
    Añadimos:
    required_score 5.0
    rewrite_header subject [SPAM]
    report_safe 1
    use_bayes 1
    use_bayes_rules 1
    bayes_auto_learn 1
    skip_rbl_checks 0

    Guardamos los cambios y configuramos Spamassassin para que arranque en automático:
    chkconfig spamassassin on
    Ahora pasamos a la instalación y configuracion de spamass-milter. Spamass-milter es un componente adicional para la biblioteca de filtros de correo (libmilter) de Sendmail, que se encarga de hacer pasar todo el correo entrante a través de SpamAssassin.
    cd /usr/src
    wget http://www.voztovoice.org/tmp/spamass-milter-0.3.1.tar.gz
    tar -xf spamass-milter-0.3.1.tar.gz
    cd spamass-milter-0.3.1
    Si no tenemos instalados los programas y la librería para compilar las fuentes tenemos que instalar los siguientes paquetes:
    yum install gcc ncurses ncurses-devel make gcc-c++ libtermcap libtermcap-devel zlib zlib-devel libtool
    ./configure
    make
    make install
    Instalamos el script para arrancarlo en automático como demonio:
    cd contrib
    nano spamass-milter-redhat.rc
    Modificamos las siguientes líneas:
    SM_SOCKET=/var/run/spamassassin/spamass-milter.sock
    [ -x /usr/local/sbin/spamass-milter ] || exit 0
    PATH=$PATH:/usr/local/sbin

    Guardamos los cambios y copiamos el archivo en la carpeta de los demonios:
    cp spamass-milter-redhat.rc /etc/init.d/spamass-milter
    cd /etc/init.d
    chmod +x spamass-milter
    chkconfig --level 2345 spamass-milter on
    Ahora creamos el archivo de configuracion para spamass-milter:
    nano /etc/sysconfig/spamass-milter
    Añadimos:
    SOCKET=/var/run/spamassassin/spamass-milter.sock
    EXTRA_FLAGS="-r 15"

    Guardamos los cambios y hacemos un reboot del sistema:
    reboot

    [TABLE="width: 315"]
    [TR]
    [TD]
    [h=1]LOGs y Prueba SPAM[/h]
    [/TD]
    [/TR]
    [/TABLE]

    Volvemos a entrar en nuestro servidor y echamos una mirada a los registros para ver si hay algún error:
    nano /var/log/maillog
    Si todo está bien seguimos conectándonos al servidor Sendmail y miramos si efectivamente el protocolo SSL/TSL esté activados como también el PLAIN LOGIN de SASL:
    yum install telnet
    telnet
    telnet> o localhost 25
    Trying 127.0.0.1...
    Connected to localhost.localdomain (127.0.0.1).
    Escape character is '^]'.
    220 ejemplo.org ESMTP Sendmail 8.13.8/8.13.8; Tue, 13 Oct 2009 15:20:59 GMT
    ehlo fulano.com
    250-ejemplo.org Hello localhost [127.0.0.1], pleased to meet you
    250-ENHANCEDSTATUSCODES
    250-PIPELINING
    250-8BITMIME
    250-SIZE
    250-DSN
    250-ETRN
    250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5
    250-STARTTLS

    250-DELIVERBY
    250 HELP
    Primero nos conectamos a el servidor de correo electrónico (Sendmail) en el puerto 25. Nos presentamos escribiendo el comando “ehlo fulano.com” y luego nos aseguramos que las dos líneas en negrita aparezcan en la lista que el servidor nos presenta. En la línea 250-AUTH no aparecen los mecanismos de autenticación PLAIN y LOGIN porque en la configuracion de Sendmail hemos definido que se pueden usar solamente dentro de una conexión segura (protocolo TLS)
    Para salir escribimos:
    quit
    Ahora hacemos una prueba para ver si SpamAssassin detecta los correos no deseados (SPAM). Primero con un correo de ejemplo que no contiene SPAM y luego con un correo de ejemplo que si es un SPAM:
    spamassassin -t < /usr/share/doc/spamassassin-3.3.1/sample-nonspam.txt | grep X-Spam
    X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on ejemplo.org
    X-Spam-Level:
    X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=no version=3.2.5


    spamassassin -t < /usr/share/doc/spamassassin-3.3.1/sample-spam.txt | grep X-Spam
    X-Spam-Flag: YES
    X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on astercurso.com
    X-Spam-Level: **************************************************
    X-Spam-Status: Yes, score=1000.0 required=5.0 tests=GTUBE,NO_RECEIVED,

    ¿Vieron la diferencia?

    [TABLE="width: 319"]
    [TR]
    [TD] [h=1]Outlook Express[/h] [/TD]
    [/TR]
    [/TABLE]
    Llegados a este punto podemos configurar nuestro clientes de correo electrónico (en mi caso Outlook Express). Lo abrimos y escogemos el menú:
    Herramientas > Cuentas > Agregar > Cuenta de correo electrónico
    Primero ponemos el nombre:
    [​IMG]
    Luego la dirección de correo electrónico:
    [​IMG]
    Direccion del servidor de entrada y salida de los correos electronicos (seleccionamos tambien la casilla que aparece en la imagen):
    [​IMG]
    Nombre de usuario y contraseña (como lo hemos creado con el comando adduser en Linux):
    [​IMG]
    Terminamos dando click en el botón “Finalizar”
    [​IMG]
    Ahora escribimos nuestro primer correo electrónico usando la cuenta recién creada. Cuando intentaremos enviar el correo nos saldrá este error:
    [​IMG]
    Esto sucede porque, como hemos visto anteriormente el mecanismo de autenticación PLAIN LOGIN solo funciona dentro de una conexión segura. Tenemos que volver a la configuracion de la cuenta y en la etiqueta “Opciones avanzadas” hacer estas modificaciones:
    [​IMG]

    Le damos Aplicar y Aceptar y volvemos a enviar el correo electrónico. Aparecerá una ventanita preguntandonos si queremos aceptar el certificado del servidor. Le demos Sí
    [​IMG]
    Este es el resultado:
    [​IMG]
    De esta forma tendremos un servidor de correo electrónico configurado de manera segura, bloqueando el correo no deseado y que no permite el envío de correos electrónicos, a través del server, a clientes que no estén autenticados y que usen una conexión segura (SSL/TLS).

    [TABLE="width: 281"]
    [TR]
    [TD] [h=1]Cortafuego[/h] [/TD]
    [/TR]
    [/TABLE]
    Si tenemos instalado un cortafuego (tipo IPtables) estos son los puertos que tenemos que abrir:
    25 TCP
    465 TCP
    587 TCP

    110 TCP
    995 TCP
    143 TCP
    993 TCP
     
    A Felifax le gusta esto.
  3. blackchaos

    blackchaos Usuario Nuevo nvl. 1
    1/41

    Registrado:
    12 Sep 2013
    Mensajes:
    27
    Me Gusta recibidos:
    0
    un aplauso para esta respuesta :chile:
     
  4. isisis

    isisis Usuario Casual nvl. 2
    37/41

    Registrado:
    8 Oct 2009
    Mensajes:
    1.870
    Me Gusta recibidos:
    2
    [​IMG]

    A W E S O M E !!!