Sondeo

Si ya probaste GNOME 3...

¿Te gustó GNOME 3?

  •  Si
  •  No
Este sondeo tiene 5 preguntas más.
Resultados
Más sondeos | 2,316 votos | 8 comentarios
Atención: 21 al 25 de mayo, Curso Global de Servidores con CentOS 6.
Atención: 23 al 27 de abril, Curso SUSE Linux Enterprise Desktop Administration.
Atención: 21 y 28 de abril, 5 y 12 de mayo, Taller de programación de Python.
Atención: Disponible ALDOS 1.4.3. Nuestro sistema operativo para escritorio.

Cómo configurar spamass-milter.

Autor: Joel Barrios Dueñas
Correo electrónico: darksrham en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción.

Requisitos previos.

Se requiere un servidor de correo con Sendmail, previamente configurado y funcionando para enviar y recibir correo electrónico. Para más detalles al respecto, consultar el documento titulado «Configuración básica de Sendmail».

Se requiere además leer y estudiar previamente la información del documento titulado «Cómo instalar y configurar Spamassassin

Acerca de spamass-milter.

Spamass-milter es un componente adicional (Plug-in) para la biblioteca de filtros de correo (libmilter) de Sendmail, que se encarga de hacer pasar todo el correo entrante, incluyendo todo lo que se reciba a través de rmail/UUCP, a través de SpamAssassin, que a su vez es un poderoso y robusto componente de filtrado de correo.

Representa una excelente alternativa pues tiene un bajo consumo de recursos de sistema, haciéndolo idóneo para servidores con sustento físico obsoleto, o donde otras aplicaciones tiene mayor prioridad en la utilización de recursos de sistema.

URL: http://savannah.nongnu.org/projects/spamass-milt/

Acerca de SpamAssassin.

SpamAssassin es una implementación que utiliza un sistema de puntuación, basado sobre algoritmos de tipo genético, para identificar mensajes que pudieran ser sospechosos de ser correo masivo no solicitado, añadiendo cabeceras a los mensajes de modo que puedan ser filtrados por el cliente de correo electrónico o MUA (Mail User Agent).

URL: http://spamassassin.apache.org/

Equipamiento lógico necesario.

•  sendmail (previamente configurado) •  sendmail-cf
•  make •  m4
•  spamassassin •  spamass-milter
•  perl-Mail-SPF •  perl-Razor-Agent
•  pyzor    

Instalación a través de yum.

Si dispone de un servidor con CentOS 4 o 5 o bien Red Hat™ Enterprise Linux 4 o 5, puede utilizar el depósito yum de Alcance Libre para servidores en producción:

[AL-Server]
name=AL Server para Enterprise Linux $releasever
mirrorlist=http://www.alcancelibre.org/al/el$releasever/al-server
gpgcheck=1
gpgkey=http://www.alcancelibre.org/al/AL-RPM-KEY

La instalación solo requiere utilizar lo siguiente:

yum -y install spamass-milter perl-Mail-SPF perl-Razor-Agent pyzor

Procedimientos.

SELinux y el servicio spamass-milter.

A fin de que SELinux permita al servicio spamassassin conectarse a servicios externos, como razor o Pyzor, utilice el siguiente mandado:

setsebool -P spamassassin_can_network 1

A fin de que SELinux permita a los usuarios del sistema utilizar spamassassin desde sus directorios de inicio, utilice el siguiente mandato:

setsebool -P spamd_enable_home_dirs 1

Si se desea desactivar toda gestión de SELinux sobre los servicios spamass-milter y spamassassin, haciendo que todo lo anterior pierda sentido y eliminando la protección que brinda esta implementación, utilice los siguientes mandatos:

setsebool -P spamd_disable_trans 1
setsebool -P spamass_milter_disable_trans 1

Ajustes adicionales.

Actualizaciones recientes en las políticas de SELinux impedirán que el servicio spamass-milter pueda siquiera iniciar. Por lo tanto, es imperativo instalar las políticas de SELinux correspondientes.

Genere un nuevo directorio denominado /usr/share/selinux/packages/spamassmilter:

mkdir /usr/share/selinux/packages/spamassmilter

Cambiarse al directorio /usr/share/selinux/packages/spamassmilter:

cd /usr/share/selinux/packages/spamassmilter

Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, descargar el archivo http://www.alcancelibre.org/linux/secrets/el5/spamassmilter.te:

wget http://www.alcancelibre.org/linux/secrets/el5/spamassmilter.te

Editar el archivo recién descargado:

vim spamassmilter.te

Asegurarse que tenga el siguiente contenido:


module spamassmilter 1.0;

require {
        type spamass_milter_data_t;
        type spamass_milter_t;
        type pyzor_t;
        type initrc_var_run_t;
        type spamd_t;
        class dir { search read create write getattr remove_name add_name };
        class file { read create ioctl write getattr unlink append };
}

#============= pyzor_t ==============
allow pyzor_t spamass_milter_data_t:dir { write search create getattr add_name };
allow pyzor_t spamass_milter_data_t:file { read write create getattr };

#============= spamass_milter_t ==============
allow spamass_milter_t initrc_var_run_t:file { write getattr };

#============= spamd_t ==============
allow spamd_t spamass_milter_data_t:dir { write search read remove_name create getattr add_name };
allow spamd_t spamass_milter_data_t:file { write getattr read create unlink ioctl append };

Lo anterior fue obtenido de la salida del mandato cat /var/log/audit/audit.log|grep audit|audit2allow -m spamassmilter>spamassmilter.te en un sistema CentOS 5 donde SELinux impedía a spamass-milter funcionar correctamente.

Si utiliza CentOS 6 o Red Hat Enterprise Linux 6, descargar el archivo http://www.alcancelibre.org/linux/secrets/el6/spamassmilter.te:

wget http://www.alcancelibre.org/linux/secrets/el6/spamassmilter.te

Editar el archivo recién descargado:

vim spamassmilter.te

Asegurarse que tenga el siguiente contenido:


module spamassmilter 1.0;

require {
        type spamass_milter_data_t;
        type spamass_milter_t;
        type pyzor_t;
        type initrc_var_run_t;
        type spamc_t;
        type spamd_t;
        class dir { search read create write open getattr remove_name add_name };
        class file { read create ioctl write open getattr unlink append };
}

#============= pyzor_t ==============
allow pyzor_t spamass_milter_data_t:dir { write search create getattr add_name };
allow pyzor_t spamass_milter_data_t:file { read write create getattr };

#============= spamass_milter_t ==============
allow spamass_milter_t initrc_var_run_t:file { write getattr };

#============= spamd_t ==============
allow spamd_t spamass_milter_data_t:dir { write open search read remove_name create getattr add_name };
allow spamd_t spamass_milter_data_t:file { write open getattr read create unlink ioctl append };

#============= spamc_t ==============
allow spamc_t spamass_milter_data_t:file open;

Lo anterior fue obtenido de la salida del mandato cat /var/log/audit/audit.log|grep audit|audit2allow -m spamassmilter>spamassmilter.te en un sistema CentOS 6 donde SELinux impedía a spamass-milter funcionar correctamente.

A continuación, se genera un el archivo de módulo para SELinux (spamassmilter.mod) utilizando el mandato checkmodule de la siguiente forma:

checkmodule -M -m -o spamassmilter.mod spamassmilter.te

Luego, se procede a empaquetar el archivo spamassmilter.mod como el archivo spamassmilter.pp:

semodule_package -o spamassmilter.pp -m spamassmilter.mod

Finalmente se vincula el archivo spamassmilter.pp obtenido con las políticas actuales de SELinux y se cargan éstas en el núcleo en ejecución:

semodule -i /usr/share/selinux/packages/spamassmilter/spamassmilter.pp

Una vez cargadas las nuevas políticas, se pueden eliminar los archivos spamassmilter.te y spamassmilter.mod, pues solo será necesario que exista el archivo binario spamassmilter.pp.

Archivo /etc/mail/sendmail.mc.

Editar el archivo /etc/mail/sendmail.mc:

vim /etc/mail/sendmail.mc

Es necesario agregar el siguiente contenido en el archivo /etc/mail/sendmail.mc, justo arriba de MAILER(smtp)dnl.

dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl

INPUT_MAIL_FILTER(`spamassassin', `S=unix:/var/run/spamass-milter/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
define(`confMILTER_MACROS_ENVRCPT',`r, v, Z')dnl

MAILER(smtp)dnl
MAILER(procmail)dnl

dnl MAILER(cyrusv2)dnl

Si se combina con ClamAV Milter, quedaría del siguiente modo:

dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl

INPUT_MAIL_FILTER(`clamav', `S=local:/var/run/clamav-milter/clamav.sock, F=, T=S:4m;R:4m')dnl
INPUT_MAIL_FILTER(`spamassassin', `S=unix:/var/run/spamass-milter/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
define(`confMILTER_MACROS_ENVRCPT',`r, v, Z')dnl
define(`confINPUT_MAIL_FILTERS', `spamassassin,clamav')dnl

MAILER(smtp)dnl
MAILER(procmail)dnl

dnl MAILER(cyrusv2)dnl

Archivo /etc/sysconfig/spamass-milter.

Editar el archivo /etc/sysconfig/spamass-milter:

vim /etc/sysconfig/spamass-milter

El archivo /etc/sysconfig/spamass-milter incluye el siguiente contenido:

### Override for your different local config
#SOCKET=/var/run/spamass-milter/spamass-milter.sock

### Standard parameters for spamass-milter are:
### -P /var/run/spamass-milter.pid (PID file)
###
### Note that the -f parameter for running the milter in the background
### is not required because the milter runs in a wrapper script that
### backgrounds itself
###
### You may add another parameters here, see spamass-milter(1)
#EXTRA_FLAGS="-m -r 15"

De forma predeterminada, a través del parámetro -m, spamass-milter desactiva la modificación del asunto del mensaje (Subject:) y la cabecera Content-Type:, lo cual es conveniente para añadir cabeceras y se procesado posteriormente, y, a través del parámetro -r 15, rechaza los mensajes de correo electrónico cuando éstos tienen asignados 15 puntos o más. Se pueden modificar el número de puntos mínimos para rechazar directamente el correo electrónico sospechoso de ser Spam incrementando el valor para el parámetro -r. La recomendación es asignar un valor mayor al definido en el archivo /etc/mail/spamassassin/local.cf. Si, por ejemplo, se establece en éste último required_hits 4.5 y rewrite_header Subject {Spam?} y en el archivo /etc/sysconfig/spamass-milter se establece EXTRA_FLAGS="-m -r 10", ocurrirá lo siguiente:

  1. Todos los mensajes marcados con 4.4 puntos o menos, se entregarán inmediatamente al usuario sin modificaciones visibles.
  2. Todos los mensajes marcados desde 4.5 hasta 9.9 puntos se entregarán al usuario con el asunto modificado añadiendo a éste {Spam?} al inicio.
  3. Todos los mensajes que estén marcados con 10.0 puntos o más serán rechazados automáticamente.

Basado sobre el ejemplo mencionado, el contenido del archivo /etc/sysconfig/spamass-milter quedaría del siguiente modo:

### Override for your different local config
#SOCKET=/var/run/spamass-milter/spamass-milter.sock

### Standard parameters for spamass-milter are:
### -P /var/run/spamass-milter.pid (PID file)
###
### Note that the -f parameter for running the milter in the background
### is not required because the milter runs in a wrapper script that
### backgrounds itself
###
### You may add another parameters here, see spamass-milter(1)
EXTRA_FLAGS="-m -r 10"

Archivo /etc/procmailrc.

Si se desea que el correo marcado con una mínima puntuación para ser considerado Spam (igual o superior al valor definido para el parámetro required_hits del archivo /etc/mail/spamassassin/local.cf) se entregue en una carpeta diferente al buzón de entrada, para ser consultado a través de un webmail (Squirrelmail o GroupOffice) o bien un cliente con soporte IMAP (Microsoft Outlook, GNOME Evolution o Mozilla Thunderbird), se puede crear el archivo /etc/procmailrc:

vim /etc/procmailrc

Y añadirle el siguiente contenido:

# Hacer pasar el correo por spamassassin
:0fw
| /usr/bin/spamc

# Mover mensajes positivos a Spam hacia la capeta ~/mail/Spam del usuario
:0:
* ^X-Spam-Status: Yes
$HOME/mail/Spam

Lo anterior define una regla condicionada a que la cabecera del mensaje incluya X-Spam-Status: Yes, el cual es agregado por SpamAssassin cuando hay casos que superan el mínimo de puntos para ser considerado Spam, de modo que todo correo que incluya esta cabecera será almacenado en la carpeta mail/Spam propiedad del usuario a quien sea destinado el mensaje. Al estar en /etc/procmailrc, esta regla se aplica a todas la cuentas de usuario en el servidor. Combinado con todo lo anterior, ocurrirá lo siguiente:

  1. Todos los mensajes marcados con 4.4 puntos o menos, se entregarán inmediatamente al usuario sin modificaciones visibles.
  2. Todos los mensajes marcados desde 4.5 hasta 9.9 puntos se entregarán al usuario con el asunto modificado añadiendo a éste {Spam?} al inicio y se almacenarán en la capeta ~/mail/Spam del usuario.
  3. Todos los mensajes que estén marcados con 10.0 puntos o más serán rechazados automáticamente.

Archivo /etc/sysconfig/spamassassin.

A fin de que spamass-milter y spamassassin trabajen juntos, es necesario exista el directorio de configuración para el usuario sa-milt que se utilizará para iniciar spamd, el cual corresponde al servicio spamassassin. Por lo general, este directorio se crea automáticamente al instalar el paquete spamassassin.

Este directorio debe pertenecer al usuario sa-milt y grupo sa-milt.

chown -R sa-milt:sa-milt /var/lib/spamassassin

Se edita el archivo /etc/sysconfig/spamassassin:

vim /etc/sysconfig/spamassassin

Y se añaden las opciones -u sa-milt -x --virtual-config-dir=/var/lib/spamassassin, las cuales especifican que se iniciará como el usuario sa-milt, que se desactivará la configuración por usuario y que se utilizará /var/lib/spamassassin como directorio virtual de configuración. De tal modo, el archivo debe quedar de la siguiente forma:

# Options to spamd
SPAMDOPTIONS="-d -c -m5 -H -u sa-milt -x --virtual-config-dir=/var/lib/spamassassin"

Iniciar, detener y reiniciar el servicio spamass-milter.

Se agrega al arranque del sistema y se inicia el servicio spamassasin del siguiente modo:

chkconfig spamassassin on
service spamassassin start

El servicio spamass-milter se agrega al arranque del sistema y se inicia del siguiente modo:

chkconfig spamass-milter on
service spamass-milter start

Al terminar, considerando que está instalado el paquete sendmail-mc, el cual permite aplicar cambios en la configuración Sendmail a partir del archivo /etc/mail/sendmail.mc, se debe reiniciar el servicio sendmail para que surtan efectos los cambios realizado en el archivo mencionado.

service sendmail restart

A fin de mantener actualizado el juego de reglas y filtros de Spamassassin, es conveniente actualizar éstos de vez en cuando, a lo sumo una o dos veces al mes. Los juegos de reglas y filtros de Spamassassin realmente sufren pocos cambios a lo largo del año y se almacenan en un sub-directorio dentro de /var/lib/spamassassin/. Solo es necesario conservar el sub-directorio con la versión más reciente. El siguiente mandato realizará la consulta y actualización de reglas y filtros de Spamassassin y reiniciará el servicio solamente si se descargó una actualización:

sa-update && service spamassassin restart

Última Edición 19/10/2011, 09:32|12,764 Accesos Ver la versión para imprimir