instalar y configurar un servidor smtp_pop3_imap en centos

14
 Publicado en VozToVoice  (http://voztovoice.org) Inicio > PDF para impresora > PDF para impresora Instalar y configurar un servidor SMTP/POP3/IMAP en CentOS con acceso TSL/SSL y SASL Mar, 13/10/2009 - 11:24 ? admin Desde hace mucho quería escribir esta guía. Más como recordatorio personal que otra cosa. Veremos como instalar un servidor SMTP (Sendmail) y un servidor POP3/IMAP (Dovecot) en CentOS. Este escrito complementa y completa un precedente articulo [1] . Al terminar la configuración de los dos servidores veremos como filtrar el correo electrónico en entrada con Spamassassin y como configurar nuestro cliente de correo electrónico (en mi caso Outlook Express) para enviar y recibir correos electrónico usando conexiones seguras y autenticadas. La instalación se hizo en un VPS con distribución CentOS 5.3 La presente guía usa como referencia un domin io registrado que denominaremos ejemplo. org. Para la configuración de los registr os DNS de un dominio puede n hacer referencia a este articulo. [2] Primero instalamos los paquetes necesarios: yum install sendmail* yum install cyrus-sasl* yum install dovecot yum install procmail yum install spamassassin Sendmail  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

Upload: cristian-bayardo-varela

Post on 14-Jul-2015

124 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 1/14

 

Publicado en VozToVoice (http://voztovoice.org)

Inicio > PDF para impresora > PDF para impresora

Instalar y configurar un servidor SMTP/POP3/IMAen CentOS con acceso TSL/SSL y SASL

Mar, 13/10/2009 - 11:24 ? admin

Desde hace mucho quería escribir esta guía. Más como recordatorio personal que otra cosa. Veremos

instalar un servidor SMTP (Sendmail) y un servidor POP3/IMAP (Dovecot) en CentOS. Este escrito

complementa y completa un precedente articulo [1]. Al terminar la configuración de los dos servidores ve

como filtrar el correo electrónico en entrada con Spamassassin y como configurar nuestro cliente de coelectrónico (en mi caso Outlook Express) para enviar y recibir correos electrónico usando conexiones s

autenticadas.

La instalación se hizo en un VPS con distribución CentOS 5.3 La presente guía usa como referencia un

registrado que denominaremos ejemplo.org. Para la configuración de los registros DNS de un dominio

hacer referencia a este articulo. [2]

Primero instalamos los paquetes necesarios:

yum install sendmail*

yum install cyrus-sasl*

yum install dovecot

yum install procmail

yum install spamassassin

Sendmail 

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

Page 2: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 2/14

 

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')dnldefine(`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

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

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 conSASL [3] tenemos que crear un archivo con las siguientes líneas:

cd /usr/lib/sasl2

nano Sendmail.conf

Page 3: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 3/14

 

pwcheck_method:saslauthd 

mech_list: LOGIN PLAIN 

Con la primera línea escogemos el método de autorización (controlo de contraseña) y con la segundae

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

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

; \ 

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 

Page 4: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 4/14

 

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 [4] que usaremos para conectarnos al servidor Send

Dovecot 

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:

# 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

 

Gurdamos los cambios y configuramos Dovecot para que arranque en automático:

chkconfig dovecot on

SpamAssassin 

Ahora podemos pasar a la configuracion de Spamassassin:

cd /etc/mail/spamassassin

mv local.cf local.cf.orig

nano local.cf

Añadimos:

Page 5: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 5/14

 

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 [5] es un component

adicional para la biblioteca de filtros de correo (libmilter) de Sendmail, que se encarga de hacer pasar

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

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

Page 6: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 6/14

 

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

LOGs y Prueba SPAM 

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 protoco

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

Page 7: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 7/14

 

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 presentam

escribiendo el comando ?ehlo fulano.com? y luego nos aseguramos que las dos líneas en negrita apare

en la lista que el servidor nos presenta. En la línea 250-AUTH no aparecen los mecanismos de autentic

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

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.2.5/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.2.5/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?

Outlook Express 

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:

Page 8: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 8/14

 

 [6]

Luego la dirección de correo electrónico:

 [7]

Direccion del servidor de entrada y salida de los correos electronicos (seleccionamos tambien la casilla

aparece en la imagen):

Page 9: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 9/14

 

 [8]

Nombre de usuario y contraseña (como lo hemos creado con el comando adduser en Linux):

 [9]

Terminamos dando click en el botón ?Finalizar?

Page 10: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 10/14

 

 [10]

Ahora escribimos nuestro primer correo electrónico usando la cuenta recién creada. Cuando intentarem

enviar el correo nos saldrá este error:

 [11]

Page 11: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 11/14

 

Esto sucede porque, como hemos visto anteriormente el mecanismo de autenticación PLAIN LOGIN so

funciona dentro de una conexión segura. Tenemos que volver a la configuracion de la cuenta y en la eti

?Opciones avanzadas? hacer estas modificaciones:

 [12]

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í

Page 12: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 12/14

 

 [13]

Este es el resultado:

 [14]

Page 13: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 13/14

 

De esta forma tendremos un servidor de correo electrónico configurado de manera segura, bloqueando

correo no deseado y que no permite el envío de correos electrónicos, a través del server, a clientes que

estén autenticados y que usen una conexión segura (SSL/TLS).

Cortafuego 

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

Sugerencias?

Comentarios

Lun, 19/10/2009 - 14:16 ? admin

Test Antispam

Para probar que efectivamente Sendmail no está aceptando correo no deseado desde la linea de coma

de Linux podemos utilizar este comando:

telnet relay-test.mail-abuse.org

Al terminar las varias pruebas miramos los resultados:

Tested host banner: 220 voztovoice.com ESMTP Sendmail 8.13.8/8.13.8; Mon, 19 Oct 2009 14:13

0500 

System appeared to reject relay attempts 

Connection closed by foreign host.

Mié, 05/05/2010 - 23:45 ? Anónimo (no verificado)

Prueba con telnet no superada

Page 14: Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS

5/12/2018 Instalar y Configurar Un Servidor SMTP_POP3_IMAP en CentOS - slidepdf.com

http://slidepdf.com/reader/full/instalar-y-configurar-un-servidor-smtppop3imap-en-centos-55a4d890da1e3 14/14

 

Buenos días

Después de completar el tutorial, al hacer pruebas, no aparece la línea:

250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5

De todas maneras, las demás pruebas fueron exitosas. Excelente guía.

Gracias

Dovecot [15] Outlook Express [16] SASL [17] Sendmail [18] Spamass-milter [19] SpamAssassin [20] SSL [21] TLS

URL de origen (Obtenido en 01/11/2011 - 17:46 ): http://voztovoice.org/?q=node/219

Enlaces:

[1] http://www.voztovoice.org/?q=node/159

[2] http://www.voztovoice.org/?q=node/141

[3] http://es.wikipedia.org/wiki/SASL

[4] http://es.wikipedia.org/wiki/MX_%28registro%29

[5] http://savannah.nongnu.org/projects/spamass-milt/ [6] http://www.voztovoice.org/tmp/InstalaryconfigurarunservidorSMTPPOP3IMA_8E4A/OE1.jpg

[7] http://www.voztovoice.org/tmp/InstalaryconfigurarunservidorSMTPPOP3IMA_8E4A/OE2.jpg

[8] http://www.voztovoice.org/tmp/InstalaryconfigurarunservidorSMTPPOP3IMA_8E4A/OE3.jpg

[9] http://www.voztovoice.org/tmp/InstalaryconfigurarunservidorSMTPPOP3IMA_8E4A/OE4.jpg

[10] http://www.voztovoice.org/tmp/InstalaryconfigurarunservidorSMTPPOP3IMA_8E4A/OE5.jpg

[11] http://www.voztovoice.org/tmp/InstalaryconfigurarunservidorSMTPPOP3IMA_8E4A/OE6.jpg

[12] http://www.voztovoice.org/tmp/InstalaryconfigurarunservidorSMTPPOP3IMA_8E4A/OE7.jpg

[13] http://www.voztovoice.org/tmp/InstalaryconfigurarunservidorSMTPPOP3IMA_8E4A/OE8.jpg

[14] http://www.voztovoice.org/tmp/InstalaryconfigurarunservidorSMTPPOP3IMA_8E4A/OE9.jpg

[15] http://voztovoice.org/?q=taxonomy/term/185[16] http://voztovoice.org/?q=taxonomy/term/246

[17] http://voztovoice.org/?q=taxonomy/term/243

[18] http://voztovoice.org/?q=taxonomy/term/186

[19] http://voztovoice.org/?q=taxonomy/term/245

[20] http://voztovoice.org/?q=taxonomy/term/244

[21] http://voztovoice.org/?q=taxonomy/term/187

[22] http://voztovoice.org/?q=taxonomy/term/188