Creamos el siguiente archivo
# touch /opt/zimbra/conf/custom_header_checks
# chown zimbra:zimbra /opt/zimbra/conf/custom_header_checks
Ahora nos ponemos como usuario zimbra y ejecutamos lo siguiente:
# su - zimbra # zmlocalconfig -e postfix_header_checks="pcre:/opt/zimbra/conf/postfix_header_checks, pcre:/opt/zimbra/conf/custom_header_checks"
Listo hecho lo de arriba, creamos nuestro script al cual llamaremos zimbralist
# vi /usr/local/sbin/zimbralist
#!/bin/bash echo "" echo "*****************************************" echo "******** Whitelist & Blacklist ********" echo "*****************************************" echo "" echo "Menu de opciones" echo "----------------" echo "" echo "Mostrar lista blanca : opcion 1" echo "Mostrar lista negra : opcion 2" echo "Agregar a lista blanca : opcion 3" echo "Agregar a lista negra : opcion 4" echo "Borrar de ambas listas (w/b) : opcion 5" echo "Lista de filtros por asunto : opcion 6" echo "Agregar filtros por asunto : opcion 7" echo "Borrar filtros por asunto : opcion 8" echo "Aplicar cambios : opcion 9" echo "" echo -n "Ingrese opcion : " read opcion if [ $opcion -eq 1 ]; then
echo ""
echo "Lista blanca"
echo "------------"
grep "whitelist_from " /opt/zimbra/conf/salocal.cf.in
echo ""
else
if [ $opcion -eq 2 ]; then
echo ""
echo "Lista Negra"
echo "-----------"
grep blacklist_from /opt/zimbra/conf/salocal.cf.in
echo ""
else
if [ $opcion -eq 3 ]; then
echo "Ingrese la cuenta o dominio:"
echo -n "Dominio/cuenta: " read dom echo "whitelist_from $dom" >> /opt/zimbra/conf/salocal.cf.in echo "Dominio/cuenta agregada" echo ""
else
if [ $opcion -eq 4 ]; then
echo "Ingrese la cuenta o dominio:"
echo -n "Dominio/cuenta: "
read dom
echo "blacklist_from $dom" >> /opt/zimbra/conf/salocal.cf.in
echo "Dominio/cuenta agregada"
echo ""
else
if [ $opcion -eq 5 ]; then
echo "Ingrese la cuenta o dominio:"
echo -n "Dominio/cuenta: "
read dom sed -i -e "/$dom/d" /opt/zimbra/conf/salocal.cf.in echo "Dominio/cuenta borrada" echo "" else
if [ $opcion -eq 6 ]; then echo "" echo "Lista de filtros por asunto" echo "---------------------------" echo "" cat /opt/zimbra/conf/custom_header_checks echo "" else
if [ $opcion -eq 7 ]; then echo "" echo "Ingrese palabra a filtrar :" echo -n "palabra: " read pal echo "/^Subject:.*($pal)/ DISCARD La palabra $pal esta bloqueada" >> /opt/zimbra/conf/custom_header_checks echo "La palabra $pal fue agregada" echo "" else
if [ $opcion -eq 8 ]; then echo "" echo "Ingrese la palabra a eliminar del filtro:" echo -n "Palabra: " read pal sed -i -e "/$pal/d" /opt/zimbra/conf/custom_header_checks echo "La palabra $pal fue eliminada" echo "" else
if [ $opcion -eq 9 ]; then echo "" echo "Aplicando los cambios ..." echo "" su - zimbra -c "zmmtactl restart && zmamavisdctl restart" echo "" echo "Cambios aplicados : [ OK ]" echo "" else echo "opcion no valida"
fi fi fi fi fi fi fi fi fi
Ahora solo queda darle permisos de ejecucion
# chmod +x /usr/local/sbin/zimbralist
Listo, ahora con ejecutar ya podemos manejar de forma mas rapida las listas
Algo adicional que agregare es lo siguiente:
Alguna palabras que vienen en el asunto como PUBLÏCÏDAD no podia bloquearlas ya que por temas de formatos no hacia el match , entonces hize un script para que se agregue el filtro en todas las cuentas del servidor
Cree un archivo de nombre /usr/local/sbin/FilterAsunto, con el siguiente contenido
#!/bin/bash
Asunto=$1
NombreFiltro=$2
ACC=`/opt/zimbra/bin/zmprov -l gaa`
for i in $ACC
do
/opt/zimbra/bin/zmmailbox -z -m $i addFilterRule "$NombreFiltro" active any header "subject" contains "$Asunto" discard stop
done
Le di permisos de ejecucion
#chmod +x /usr/local/sbin/FilterAsunto
Listo, ahora ejecutando del siguiente modo se puede agregar los filtros en todas las cuentas
#FilterAsunto PUBLÏCÏDAD PalabraFiltrada1
Ahora si queremos agregar al script seria del siguiente modo:
echo "Ingrese palabra a filtrar :" echo -n "palabra: " read pal
echo -n "Nombre del Filtro: "
read filtro
echo "Agregando filtro ... "
echo "/^Subject:.*($pal)/ DISCARD La palabra $pal esta bloqueada" >> /opt/zimbra/conf/custom_header_checks
/usr/local/sbin/FilterAsunto $pal $filtro
echo "La palabra $pal fue agregada"
Por ahora lo estare trabajando asi ....
Bastante Interesante,
ResponderEliminaruna consulta que te parece el otro método por medio de Amavis, crear un archivo de lista negra y uno de lista blanca, y especificar en el siguiente archivo /opt/zimbra/conf/amavisd.conf.in, que lea mis listas y bloque o deniegue según sea el caso
a veces encontrar varias soluciones a un problema confunde un poco
debo decir que este método lo aplique en Zimbra 8 y funciona.
agradecería que respondas
gracias.
Robert,
ResponderEliminarQue tal, tambien lo habia revisado y si funciona. En este caso ya dependera de ti cual uses, te envio un link para una mayor lectura del tema
http://wiki.zimbra.com/wiki/Improving_Anti-spam_system
Saludos