Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

21
Servidor de correo con CentOS 5 Linux Fecha: 09.10.2007 - 18:12 Puede usar Red Hat Enterprise Linux o CentOS 5. RHEL 5 puede ser comprado desde el sitio web de Red Hat y viene con soporte. Por otro lado puede descargar CentOS 5 líbremente desde aquí . Table of Contents [hide ] 1. Pasos para la Instalación 1. Arrancar el CD 1 o DVD 2. Mensaje de bienvenida 3. Selección del lenguaje 4. Configurar el teclado 5. Particionar el disco duro 6. Configuración de la red 7. Localización y hora 8. Contraseña del usuario root 9. Selección de paquetes 10. Inicio de la instalación 11. Fin de la instalación 2. Configuración Inicial 1. Firewall 3. Instalación y configuración de los paquetes 1. Postfix 2. Dovecot 4. Implementación de SSL/TLS 1. Obtener un certificado digital 2. Postfix + TLS 3. Dovecot + SSL 5. Conclusión Pasos para la Instalación Después de haber obtenido una copia de RHEL5 o CentOS 5, proceda con los siguientes pasos para instalarlo. En este caso usaremos CentOS 5, pero los pasos también pueden ser usados en RHEL5. Arrancar el CD 1 o DVD Inserte el CD 1 o DVD de CentOS 5 y espere que salga un splash como el siguiente: 1 de 21 1 de 21 1 de 21

Transcript of Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Page 1: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Servidor de correo con CentOS 5

• Linux

Fecha: 09.10.2007 - 18:12

Puede usar Red Hat Enterprise Linux o CentOS 5. RHEL 5 puede ser comprado desde el sitio web de Red Hat y viene con soporte. Por otro lado puede descargar CentOS 5 líbremente desde aquí.

Table of Contents [hide]

1. Pasos para la Instalación 1. Arrancar el CD 1 o DVD 2. Mensaje de bienvenida 3. Selección del lenguaje 4. Configurar el teclado 5. Particionar el disco duro 6. Configuración de la red 7. Localización y hora 8. Contraseña del usuario root 9. Selección de paquetes 10. Inicio de la instalación 11. Fin de la instalación

2. Configuración Inicial 1. Firewall

3. Instalación y configuración de los paquetes 1. Postfix 2. Dovecot

4. Implementación de SSL/TLS 1. Obtener un certificado digital 2. Postfix + TLS 3. Dovecot + SSL

5. Conclusión

Pasos para la Instalación

Después de haber obtenido una copia de RHEL5 o CentOS 5, proceda con los siguientes pasos para instalarlo. En este caso usaremos CentOS 5, pero los pasos también pueden ser usados en RHEL5.

Arrancar el CD 1 o DVD

Inserte el CD 1 o DVD de CentOS 5 y espere que salga un splash como el siguiente:

1 de 211 de 211 de 21

Page 2: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Y presione Enter. Esto instalará CentOS en modo gráfico.

Ahora saldrá una pantalla como la siguiente:

2 de 212 de 212 de 21

Page 3: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Seleccione Skip, ya que esto tomará mucho tiempo.

Ahora presione Next.

Mensaje de bienvenida

Selección del lenguaje

Escoja su lenguaje y de click en Next.

3 de 213 de 213 de 21

Page 4: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Configurar el teclado

Configure su teclado y de click en Next.

4 de 214 de 214 de 21

Page 5: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Particionar el disco duro

Ahora le toca particionar su disco duro, puede usar la configuración por defecto o particionar su disco Ud. mismo. Si sale una advertencia de click en Yes.

Configuración de la red

Ahora toca configurar la red, digamos que tiene una configuración similar a esta:

Host Name mail.bavrit.com IP Address 10.0.0.23 Subnet Mask 255.255.255.0 Gateway 10.0.0.138 Primary DNS 208.67.222.222 Secondary DNS 208.67.220.220

Use una configuración similar a esta:

5 de 215 de 215 de 21

Page 6: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

No olvide de asignarle una dirección IP estática, ya que este es un servidor y de desabilitar IPv6.

Debe quedar algo como esto:

6 de 216 de 216 de 21

Page 7: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Localización y hora

Escoja su región en el mapa y seleccione si su sistema usa UTC o no. Cuando este listo de click en Next.

Contraseña del usuario root

Ahora escoga una contraseña para el usuario root:

7 de 217 de 217 de 21

Page 8: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Selección de paquetes

Ahora viene la selección de paquetes, seleccione solo la sección Server y nada más, y de click en Customize now. Si desea puede agregar el repositorio CentOS Extras ahora. Al momento de personalizar los paquetes, instale Postfix y Dovecot y no sendmail. Si desea puede instalar un servidor DNS, HTTP y MySQL, pero lo principal son los servidores de correo. De click en Next cuando esté listo.

8 de 218 de 218 de 21

Page 9: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Inicio de la instalación

Ahora empieza la instalación del sistema.

9 de 219 de 219 de 21

Page 10: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Fin de la instalación

Una vez terminada la instalación proceda a reiniciar la máquina y retirar el CD o DVD.

10 de 2110 de 2110 de 21

Page 11: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Configuración Inicial

Después de instalar correctamente RHEL5 o CentOS 5 procedamos a configurarlo por pimera vez.

Firewall

Seleccione con el teclado Firewall Configuration:

Y desabilite SElinux, esto nos ahorrará unos cuantos jalones de pelos y dolores de cabeza... Ahora personalize el Firewall y configúrelo de esta manera:

11 de 2111 de 2111 de 21

Page 12: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Lo que se debe ingresar es:

pop3:tcp,imap:tcp,pop3s:tcp,imaps:tcp

Al finalizar seleccione OK.

Ahora salgamos de este asistente seleccionando Quit.

Instalación y configuración de los paquetes

Ahora inicie sessión como root. Elegimos trabajar como root, por tratarse de tareas administrativas.

Nota: Recuerde que no debe usar root siempre, sólo cuando sea estrictamente necesario.

Postfix

Instalar y configurar Postfix para CentOS es fácil. Postfix viene con una configuración muy segura, asi que trataremos de abrirla un poco.

Si no instaló Postfix durante la fase de selección de paquetes puede instalarlo ahora mismo usando el siguiente comando:

yum install postfix

Ahora configuremos el archivo /etc/postfix/main.cf:

nano -w /etc/postfix/main.cf

Busque los siguientes parámetros y cámbielos según dice aqui:

inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain home_mailbox = mail/

12 de 2112 de 2112 de 21

Page 13: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Con esto decimos que Postfix responda a los pedidos en la red y ademas que use el formato Maildir que es mejor que el que viene por defecto, llamado mbox. Las líneas que empiezan con # son comentarios. Una vez hechos los cambios guárdelos con Control+X (si usa nano como su editor de textos).

Reinicie el servicio Postfix:

service postfix restart

Y agréguelo a los servicios que se iniciarán al cargar el sistema:

chkconfig --levels 345 postfix on

Ahora agregue un usuario al sistema de la siguiente manera:

useradd juan

Ahora, no olvide de ponerle como shell /bin/false, asi Ud. no le permite conectarse al servidor por medio de SSH. Además no olvide de asignarle una contraseña. Hágalo mediante el siguiente comando:

usermod -s /bin/false juan passwd juan

Ahora probaremos nuestra instalación de Postfix usando telnet. El punto después de test es un comando que debe ser escrito. Expliquemos paso a paso:

[root@mail ~]# telnet localhost smtp Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mail.bavrit.com ESMTP Postfix

Ahora tipee:

ehlo mail

Debe salir algo como esto:

250-mail.bavrit.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN

Ahora pruebe enviando un email. Debe escribir lo que dicen las líneas:

ehlo su-host mail from: su-usuario (remitente) rcpt to: su-usuario (destinatario) data test (el cuerpo del mensaje, el punto es para finalizar la redacción)

13 de 2113 de 2113 de 21

Page 14: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

. quit (cerrar sesión) [root@mail ~]# telnet localhost smtp Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mail.bavrit.com ESMTP Postfix ehlo mail 250-mail.bavrit.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN mail from: juan 250 2.1.0 Ok rcpt to: juan 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> test . 250 2.0.0 Ok: queued as D33AE10042 quit 221 2.0.0 Bye Connection closed by foreign host.

Verifique si el correo llegó:

[root@mail ~]# cd /home/juan/mail/new [root@mail new]# ls 1191978078.V803I277e8M857132.mail.bavrit.com [root@mail new]# cat 1191978078.V803I277e8M857132.mail.bavrit.com

No se preocupe, no tiene que tipear todo el nombre del archivo, basta con que escriba los dos primeros caracteres y presionar Tab para que se complete automáticamente.

Return-Path: <[email protected]> X-Original-To: juan Delivered-To: [email protected] Received: from mail (localhost.localdomain [127.0.0.1]) by mail.bavrit.com (Postfix) with ESMTP id D33AE10042 for <juan>; Tue, 9 Oct 2007 20:00:58 -0500 (PET) Message-Id: <[email protected]> Date: Tue, 9 Oct 2007 20:00:58 -0500 (PET) From: [email protected] To: undisclosed-recipients:;

test

Si todo sale bien sigamos con los siguientes pasos, sino, puede verificar algun error en el archivo /var/log/maillog.

Ahora procedamos con la autenticación SMTP para esto abrimos el fichero /usr/lib/sasl2/smtpd.conf (/usr/lib64/sasl2/smtpd.conf para usuarios de 64-bits) y agregue la siguiente línea:

14 de 2114 de 2114 de 21

Page 15: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

mech_list: PLAIN LOGIN

Inicie o reinicie el servicio saslauthd:

service saslauthd restart

Y agréguelo a los servicios que se iniciarán al cargar el sistema:

chkconfig --levels 345 saslauthd on

Ahora necesitamos reconfigurar Postfix:

nano -w /etc/postfix/main.cf

Busque los siguientes parámetros y cámbielos como dice aquí, si no encuentra algún parámetro agreguelo al final del archivo.

mynetworks = 127.0.0.0/8 smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination broken_sasl_auth_clients = yes

La primera línea dice que sólo se puede enviar desde localhost, esto es, que sólo localhost puede enviar correos al exterior. La última línea es para el soporte de clientes de correo antiguos como Microsoft Outlook Express 4.0 y Microsoft Exchange 5.0, sólo en caso alguien los siga usando.

Reinicie Postfix:

service postfix restart

Ahora con esto ya tenemos nuestro servidor SMTP con autenticación funcionando. Sigamos con Dovecot nuestro servidor IMAP y POP3.

Si todo sale bien sigamos con los siguientes pasos, sino, puede verificar algun error en el archivo /var/log/maillog.

Dovecot

La instalación de Dovecot en CentOS o RHEL es fácil. Todo lo que necesitamos es decirle que protocolos necesitamos y ya, todo listo.

Abrimos el archivo /etc/dovecot.conf:

nano -w /etc/dovecot.conf

Encuentre los siguientes parámetros y cámbielos según diga lo siguiente:

protocols = pop3 pop3s imap imaps mail_location = maildir:~/mail/ passdb pam { session=yes } imap_client_workarounds = delay-newmail outlook-idle netscape-eoh pop3_client_workarounds = outlook-no-nuls oe-ns-eoh

15 de 2115 de 2115 de 21

Page 16: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Guárdelo. Las líneas que empiezan con # son comentarios. Las dos últimas líneas son parámetros para no tener problemas con algunos clientes de correo, los cuales tienen algunos bugs.

Reinicie o inicie Dovecot:

service dovecot restart

Y agréguelo a los servicios que se iniciarán al cargar el sistema:

chkconfig --levels 345 dovecot on

Ahora vamos a probar Dovecot uasndo telnet. Debe escribir lo que dicen las líneas:

user su-usuario pass su-contraseña list (listar los mensajes recibidos) retr 1 (ver el primer mensaje) quit (salir) [root@mail ~]# telnet localhost pop3 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK Dovecot ready. user juan +OK pass contraseña +OK Logged in. list +OK 1 messages: 1 427 . retr 1 +OK 427 octets Return-Path: <[email protected]> X-Original-To: juan Delivered-To: [email protected] Received: from mail (localhost.localdomain [127.0.0.1]) by mail.bavrit.com (Postfix) with ESMTP id D33AE10042 for <juan>; Tue, 9 Oct 2007 20:00:58 -0500 (PET) Message-Id: <[email protected]> Date: Tue, 9 Oct 2007 20:00:58 -0500 (PET) From: [email protected] To: undisclosed-recipients:;

test . quit +OK Logging out. Connection closed by foreign host.

Si todo sale bien sigamos con los siguientes pasos, sino, puede verificar algun error en el archivo /var/log/maillog.

Implementación de SSL/TLS

16 de 2116 de 2116 de 21

Page 17: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Ahora un punto muy importante es la seguridad. Ahora les mostraremos como lograrlo. Configuraremos nuestro servidor de correo para que utilice SSL/TLS para obtener conexiones seguras.

Obtener un certificado digital

Lo primero que se debe hacer es obtener un certificado digital ya sea gratuito, firmado por nosotros mismo o por alguna entidad comercial.

En esta ocación usaremos CAcert.org para que firme nuestro certificado digital, primero debemos hacer una petición:

cd ~ mkdir ssl cd ssl openssl genrsa -out mail.key 1024 openssl req -new -key mail.key -out mail.csr

Ahora regístrese en www.cacert.org e ingrese el contenido del archivo mail.csr y en unos segundos tendrá ya su certificado firmado y listo para usarse.

Nota: Para Postfix debe bajarse el certificado raíz que se encuentra aquí. Para descargar haga click derecho en el link y guárdelo como cacert.crt.

Guarde el texto que sale al pedir un certificado en un archivo llamado mail.cert.

Postfix + TLS

Ahora procedamos a configurar Postfix para que haga uso de nuestro certificado digital.

mkdir /etc/postfix/ssl cd ~/ssl cp mail.crt mail.key cacert.crt /etc/postfix/ssl

Adjunte estas líneas al final del archivo /etc/postfix/main.cf:

smtpd_use_tls = yes smtpd_tls_auth_only = yes smtpd_tls_key_file = /etc/postfix/ssl/mail.key smtpd_tls_cert_file = /etc/postfix/ssl/mail.crt smtpd_tls_CAfile = /etc/postfix/ssl/cacert.crt smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom

Finalmente reinicie Postfix:

service postfix restart

Para comprobar si está bien su configuración ejecute:

telnet localhost smtp

La línea relevante es:

17 de 2117 de 2117 de 21

Page 18: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

250-STARTTLS

Si salió esto, entonces quiere decir que todo anda bien.

Nota: Al configurar nuestro cliente de correo, use el método TLS, de lo contrario el servidor no enviará ningún correo, ya que se le especificó que si no se usa TLS que no se envie nada. Si no se quiere esto puede cambiar la variable smtpd_tls_auth_only a "no".

Dovecot + SSL

Ahora nos toca configurar Dovecot para que haga uso de nuestros certificados digitales.

cd ~/ssl cp mail.crt /etc/pki/dovecot/certs/dovecot.pem cp mail.key /etc/pki/dovecot/private/dovecot.pem

Ahora editamos el archivo /etc/dovecot.conf y quitamos el símbolo de comentario (#) a las siguientes variables:

ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem ssl_key_file = /etc/pki/dovecot/private/dovecot.pem

Finalmente reinicie Dovecot:

service dovecot restart

Y listo, configure su cliente de correo especificando que se quiere una conexión de tipo SSL.

Conclusión

Con esto terminamos la configuración de nuestro servidor de correos usando CentOS o RHEL. Si tiene alguna duda o comentario, por favor use los foros o envie un comentario, gracias.

Nota: Al momento de configurar los clientes de correos use usuario en lugar [email protected].

Autor Nombre: Juan Timaná Sitio Web: http://www.ezwp.com

18 de 2118 de 2118 de 21

Page 19: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Filtro AntiSpam y AntiVirus en CentOS 5

• Linux

Fecha: 13.11.2007 - 22:52

Usaremos ClamAV como antivirus, SpamAssassin para atrapar el spam y MailScanner para integrarlo todo con Postfix, nuestro MTA de preferencia.

MailScanner

MailScanner es un programa que escanea todos los emails en búsqueda de virus, spam, ataques a vulverabilidades. No está atado a ningún antivirus en particular y puede funcionar con muchos antivirus diferentes. Para poder instalar MailScanner necesitamos tener un compilador instalado en nuestro sistema.

Requisitos previos

Se requiere de un compilador y el binario rpm-build, si no se ha instalado, instálelo de la siguiente manera:

yum install gcc rpm-build

De esta manera podremos seguir con el siguiente paso.

Descargar MailScanner

Para descargar MailScanner puede ir a su sitio web o ejecutar el siguiente comando:

wget -c hxxp://www.mailscanner.info/files/4/rpm/MailScanner-4.65.3-1.rpm.tar.gz

Compilando e instalando MailScanner

Después de descargar MailScanner vamos a descomprimir el paquete descargado de esta manera:

tar zxvf MailScanner-4.65.3-1.rpm.tar.gz

Despues vamos a la carpeta MailScanner y ejecutamos el archivo install.sh:

cd MailScanner-4.65.3-1/ ./install.sh

Esto compilará e instalará MailScanner, tenga paciencia, esto puede demorar un poco.

Clam AntiVirus (ClamAV)

Para instalar ClamAV vamos a usar los programas precompilados que nos proporciona el repositorio de Dag Wieers RPM.

Agregando el repositorio Dag Wieers

19 de 2119 de 2119 de 21

Page 20: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

Ejecute el siguiente comando para instalar el repositorio para una máquina de 32 bits:

rpm -Uhv hxxp://apt.sw.be/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

O este comando para máquinas de 64 bits:

rpm -Uhv hxxp://apt.sw.be/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

Ahora tiene una extensiva librería de programas precompilados listos para instalarse.

Instalación

Para instalar ClamAV ejecute el siguiente comando:

yum install clamd

Una vez instalado el programa, pruébelo. Ejecutando

clamscan

Integrar todo a Postfix

Esta sección le ayudará a configurar MailScanner, ClamAV y SpamAssassin para usarlo junto con Postfix. Antes de seguir, por favor, asegúrese de haber seguido los pasos anteriores.

SpamAssassin está incluido en CentOS 5 y está listo para usarse, sólo instálelo si aun no lo ha hecho.

yum install spamassasin

Configuración de MailScanner

Edite el archivo /etc/MailScanner/MailScanner.conf.

nano -w /etc/MailScanner/MailScanner.conf

Encuentre las siguientes variables y cámbielas como dice a continuación:

%org-name% = suorganizacion %org-long-name% = el nombre completo de su organizacion %web-site% = www. susitioweb.com Run As User = postfix Run As Group = postfix Incoming Queue Dir = /var/spool/postfix/hold Outgoing Queue Dir = /var/spool/postfix/incoming MTA = postfix Virus Scanners = clamd Use SpamAssassin = yes SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin

Después tiene que ir a la carpeta /var/spool/MailScanner y crear una carpeta llamada "spamassassin".

20 de 2120 de 2120 de 21

Page 21: Configuración Servidor de Correo [PostFix], Anti Spam y Antivirus CentOS 5 x Daniel03

cd /var/spool/MailScanner mkdir spamassassin

Cámbie los permisos a las carpetas:

chown postfix.postfix incoming/ quarantine/ spamassassin/ chmod 700 incoming/ quarantine/ spamassassin/

Integración

Editar el archivo /etc/postfix/main.cf y quitar el símbolo '#' en frente de:

header_checks = regexp:/etc/postfix/header_checks

Editar el archivo /etc/postfix/header_checks y agregar la siguiente línea al final del archivo:

/^Received:/ HOLD

Esto hará que los correos estén en observación hasta que MailScanner los libere.

MailScanner será el que haga que Postfix arranque, así que desabilitaremos el servicio de Postfix en nuestro sistema y dejaremos que MailScanner haga su trabajo.

chkconfig postfix off chkconfig MailScanner on service postfix stop service MailScanner start

Felicitaciones, ahora su correo será chequeado por MailScanner en búsqueda de virus o spam. Cada email que se envie o se reciba tendrá un mensaje como el siguiente, el cual dice que MailScanner está funcionando bien:

-- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.

Nota: Reemplaze las "xx" en las urls por "tt", ya que nuestro sistema convierte automáticamente todas las cadenas de texto que tengan forma de url a un vínculo, disculpe la molestia.

Autor Nombre: Juan Timaná Sitio Web: http://www.ezwp.com

21 de 2121 de 2121 de 21