Bienvenido(a) a Alcance Libre 05/09/2025, 22:33
Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2016 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.
Se requiere un servidor de correo electrónico con Sendmail, previamente configurado y totalmente funcional. 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 «Instalación y configuración de Spamassassin».
Spamass-milter es un complemento (plug-in) para la biblioteca de filtros de correo (libmilter) de Sendmail. 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 consume una relativamente baja cantidad de recursos de sistema.
URL: http://savannah.nongnu.org/projects/spamass-milt/
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/
Si utiliza CentOS o Red Hat™ Enterprise Linux, puede utilizar el almacén YUM de Alcance Libre para servidores en producción, descargando el archivo https://www.alcancelibre.org/al/server/AL-Server.repo dentro del directorio /etc/yum.repos.d/:
wget -N https://www.alcancelibre.org/al/server/AL-Server.repo \ |
Ejecute lo siguiente para instalar todo lo necesario:
yum -y install spamass-milter perl-Mail-SPF perl-Razor-Agent \ |
Ejecute lo siguiente para que SELinux permita al servicio spamassassin conectarse a servicios externos como Razor o Pyzor:
setsebool -P spamassassin_can_network 1 |
Ejecute lo siguiente para que SELinux permita a los usuarios regulares utilizar spamassassin desde sus directorios de inicio:
setsebool -P spamd_enable_home_dirs 1 |
SELinux impedirán que el servicio spamass-milter pueda siquiera iniciar. Realice el siguiente procedimiento para instalar las políticas de SELinux necesarias.
Genere un nuevo directorio denominado /usr/share/selinux/packages/spamassmilter:
mkdir /usr/share/selinux/packages/spamassmilter
|
Cambie al directorio /usr/share/selinux/packages/spamassmilter:
cd /usr/share/selinux/packages/spamassmilter |
Si utiliza CentOS 5 o Red Hat™ Enterprise Linux 5, descargue el archivo https://www.alcancelibre.org/linux/secrets/el5/spamassmilter.te:
wget https://www.alcancelibre.org/linux/secrets/el5/spamassmilter.te |
Edite el archivo recién descargado:
vi spamassmilter.te |
Verifique que éste contenga lo siguiente:
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 tras ejecutar 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, descargue el archivo https://www.alcancelibre.org/linux/secrets/el6/spamassmilter.te:
wget https://www.alcancelibre.org/linux/secrets/el6/spamassmilter.te |
Edite el archivo recién descargado:
vi spamassmilter.te |
Verifique que éste contenga lo siguiente:
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 tras ejecutar 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.
Genere el archivo de módulo para SELinux (spamassmilter.mod) ejecutando checkmodule de la siguiente forma:
checkmodule -M -m -o spamassmilter.mod spamassmilter.te |
Empaquete el archivo spamassmilter.mod como el archivo spamassmilter.pp:
semodule_package -o spamassmilter.pp -m spamassmilter.mod |
Vincule el archivo spamassmilter.pp a las políticas actuales de SELinux y cargue la nueva política al núcleo en ejecución:
semodule -i /usr/share/selinux/packages/spamassmilter/spamassmilter.pp
|
Edite el archivo /etc/mail/sendmail.mc:
vi /etc/mail/sendmail.mc
|
Añada lo siguiente justo arriba de MAILER(smtp)dnl.
|
Utilice lo siguiente si se combina con ClamAV Milter:
|
Utilice lo siguiente si se combina con ClamAV Milter y Milter Greylist:
|
Utilice lo siguiente si se combina con ClamAV Milter, Milter Greylist y DKIM Milter:
|
Edite el archivo /etc/sysconfig/spamass-milter:
vi /etc/sysconfig/spamass-milter
|
Encontrará 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:
El contenido del archivo /etc/sysconfig/spamass-milter quedaría del siguiente modo si se aplica en escenario descrito arriba:
### 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" |
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 |
Edite el archivo /etc/sysconfig/spamassassin:
vi /etc/sysconfig/spamassassin
|
Añada 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"
|
Agregue al arranque del sistema e inicie el servicio spamassasin del siguiente modo:
chkconfig spamassassin on service spamassassin start |
Agregue al arranque del sistema e inicie el servicio spamass-milter:
chkconfig spamass-milter on service spamass-milter start |
Reinicie el servicio sendmail para que surtan efectos los cambios.
service sendmail restart |
Actualice el juego de reglas y filtros de SpamAssassin una o dos veces al mes. Éstos sufren pocos cambios a lo largo del año y se almacenan en un sub-directorio dentro de /var/lib/spamassassin/. Sólo es necesario conservar el sub-directorio con la versión más reciente. Ejecute lo siguiente para consultar si hay actualizaciones, descargar lo necesario y reiniciar el servicio sólo si hubo una actualización:
sa-update && service spamassassin restart |
Última Edición: 20/07/2016, 10:53| Hits: 26,906