miércoles, 19 de diciembre de 2018

Problemas SpamAssassin con Horde

En las versiones de Horde (5.1.7 y otras más modernas) que trae el Plesk, a veces pasa que el  propio SpamAssassin marca los correos enviados desde el propio servidor. Lo hace porque saltan las reglas "RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS" y "HELO_DYNAMIC_SPLIT_IP Relay HELO'd using suspicious hostname (Split IP)".

Como se puede ver en el post anterior probé a actualizar el propio SpamAssassin, pero al final el problema persistía. Tras buscar info, encontré esta web en la que sugerían editar la configuración del SpamAssassin para añadir una serie de ips confiables y cambiar el filtro del propio SpamAssassin creando una regla específica para el Horde.

Como Plesk sobreescribe los archivos de config, para meter valores personalizados hay que crear un archivo nuevo dentro de la carpeta /etc/mail/spamassassin/ ya que lee todos los archivos .cf que haya ahí. Sería añadir la directiva:
trusted_networks 123.45.67.89 127.0.0.1
Y reiniciar el servicio con service spamassassin restart.

Lo siguiente es editar el fichero /usr/share/perl5/vendor_perl/Mail/SpamAssassin/Message/Metadata/Received.pm y buscar la línea que contiene:
    if (/ \((?:SquirrelMail|NaSMail) authenticated user /) {
      #REVERTING bug 3236 and implementing re: bug 6549
      if (/(${IP_ADDRESS})\b(?![.-]).{10,80}by (\S+) with HTTP/) {
        $ip = $1; $by = $2; goto enough;
      }
    }
Y añadir a continuación:
    if (/ \((Horde Framework)\) with HTTPS/) {
       dbg ("received header: ignored horde | IMP injection: $_");
       return;
    }
 En mi caso en la línea 467, pero ya depende de la versión del fichero que se tenga. Lo más probable es que cuando se actualice el SpamAssassin esa modificación se pierda, pero en mi caso, no se va a actualizar mucho.