Sistema de Correo Electrónico integrado con un Directorio Activo de Microsoft o Samba 4 de Sernet (Parte III-B)

Saludos nuevamente.

Seguimos desde donde nos quedamos

  • Definición de las Listas de Control de Acceso (ACLs) que están contenidas en cada conjunto

 

Como se mencionó anteriormente, se utilizarán solamente tres conjuntos de ACLs: uno para chequear los emisores y/o destinatarios de los mensajes, otro para chequear las cabeceras MIME de los mismos, y otro para chequear su contenido. A continuación se explicarán las configuraciones de las ACLs de mayor peso.

ACLs para el análisis del emisor/destinatario de los mensajes

En este aspecto es súper importante tener en cuenta el orden secuencial de aplicación de las ACLs. En otras palabras, la ubicación de las reglas dentro del conjunto debe ser primeramente las generales y luego las específicas.

* Regla que chequea que solamente los equipos que interesan puedan conectarse a este servidor para realizar transferencia de mensajes, en otras palabras, que pueden hacer relay al mismo

deny    hosts          = ! +relay_from_hosts : ! +relay_from_internal_networks : ! +relay_from_mailservers

        message        = Solamente los servidores de correo internos, equipos \n\

                         y/o subredes autorizados pueden hacer relay a este servidor

        log_message    = Relay access denied. It’s not an internal mail server, network or authorized host

NOTA: Esta regla actuará como complemento al cortafuegos del servidor. En otras palabras, en caso de que el cortafuegos deje de funcionar por la razón que sea, esta ACL garantizará que solamente los equipos autorizados puedan hacer relay a este servidor.

* Regla que chequea si existen caracteres no válidos en las direcciones de los mensajes de correo electrónico

deny    message        = Caracteres no permitidos en la direccion

        log_message    = Restricted characters in address

        local_parts    = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

* Reglas que chequean si tanto el dominio, como la dirección IP del emisor o destinatario se encuentran en lista negra

deny    condition      = ${lookup{$sender_address_domain}wildlsearch{BLACKLISTEDDIR/blacklisted-domains}{yes}}

        message        = El dominio $sender_address_domain se encuentra en lista \n\

                         negra en nuestros servidores. Contacte con el \n\

                         administrador si cree que esto es incorrecto

        log_message    = Blacklisted domain $sender_address_domain

deny    condition      = ${lookup{$domain}wildlsearch{BLACKLISTEDDIR/blacklisted-domains}{yes}}

        message        = El dominio $domain se encuentra en lista negra en \n\

                         nuestros servidores. Contacte con el administrador \n\

                         si cree que esto es incorrecto

        log_message    = Blacklisted domain $domain

* Reglas que chequean si la dirección IP de un equipo o servidor se encuentra en lista negra

deny    condition      = ${if or {\

                                    {eq {yes}{${lookup{$sender_address_domain}wildlsearch{BLACKLISTEDDIR/blacklisted-hosts}{yes}}}}\

                                    {eq {yes}{${lookup{$sender_host_address}wildlsearch{BLACKLISTEDDIR/blacklisted-hosts}{yes}}}}\

                                 }\

                          }

        message        = En nombre del host o la direccion IP del emisor se \n\

                         encuentra en lista negra en nuestros servidores \n\

                         Contacte con el administrador si cree que esto es \n\

                         incorrecto

        log_message    = Blacklisted host $sender_address_domain

deny    condition      = ${lookup{$domain}wildlsearch{BLACKLISTEDDIR/blacklisted-hosts}{yes}}

        message        = En nombre del host destinatario se encuentra en lista \n\

                         negra en nuestros servidores Contacte con el \n\

                         administrador si cree que esto es incorrecto

        log_message    = Blacklisted host $domain

* Reglas referentes a las direcciones o cuentas de correo electrónico que se encuentran en lista negra, ya sean emisores o destinatarios

deny    condition      = ${lookup{$sender_address}wildlsearch{BLACKLISTEDDIR/blacklisted-senders}{yes}}

        message        = El remitente $sender_address se encuentra en lista negra \n\

                         en nuestros servidores. Contacte con el administrador si \n\

                         cree que esto es incorrecto

        log_message    = Blacklisted sender $sender_address

deny    condition      = ${lookup{$sender_address}wildlsearch{WHITELISTEDDIR/whitelisted-senders}{no}}

        message        = El remitente $sender_address se encuentra en lista negra \n\

                         en nuestros servidores. Contacte con el administrador si \n\

                         cree que esto es incorrecto

        log_message    = Blacklisted sender $sender_address

deny    condition      = ${lookup{${local_part}@${domain}}wildlsearch{BLACKLISTEDDIR/blacklisted-recipients}{yes}}

        message        = El destinatario ${local_part}@${domain} se encuentra en \n\

                         lista negra en nuestros servidores. Contacte con el \n\

                         administrador si cree que esto es incorrecto

        log_message    = Blacklisted recipient ${local_part}@${domain}

* Regla que impide que nuestro servidor de correo sea Open Relay, o sea, se use para spamear desde Internet

deny    message        = Acceso denegado. No es un remitente @MAILDOMAIN. Open Relay \n\

                         denegado en este servidor.

        log_message    = Access denied. Not @MAILDOMAIN sender. Open Relay denied in thin server.

        senders        = ! : !MAILDOMAIN : !*.MAILDOMAIN

        recipients     = ! : !MAILDOMAIN : !*.MAILDOMAIN

Esta regla se activa si, y sólo si, tanto el dominio del emisor como el del destinatario son diferentes al dominio local y/o sus subdominios

* Reglas que chequean si la cuenta de usuario existe en el Directorio Activo, independientemente si es el emisor o destinatario de los mensajes

deny    message        = El usuario con el cual pretende enviar correos no \n\

                         existe en nuestro dominio. Es acaso esto un intento \n\

                         de enviar spam a traves de nuestro servidor de \n\

                         correo? De ser este su objetivo, no se le permitira \n\

                         completar su operacion

        log_message    = Email sender does not exist

        senders        = MAILDOMAIN

        condition      = ${lookup ldap{LDAP_AD_MAIL_SENDER} {no}{yes}}

deny    message        = El usuario al cual le esta tratando de alcanzar no \n\

                         existe en nuestro dominio. Por favor, revise la \n\

                         direccion del destinatario por si la ha tecleado mal \n\

                         o ha dejado espacios innecesarios.

        log_message    = Email recipient does not exist

        domains        = MAILDOMAIN

        condition      = ${lookup ldap{LDAP_AD_MAIL_RCPT} {no}{yes}}

NOTA: Claro está que, por un problema de ética, el mismo sistema de correo debe notificarle al usuario el porqué del problema, además de la sugerencia de revisar si escribió correctamente la dirección del destinatario. Aunque, en la mayoría de los casos, los usuarios ni se molestan en leer el mensaje de rebote que da el servidor de correo y para ellos es mucho más fácil llamar al informático, al de soporte técnico o al administrador de la red.

* Reglas que deniegan el acceso a las cuentas de usuarios en el Directorio Activo o directorio LDAP que son miembros del grupo de usuarios que tienen denegado el acceso al correo electrónico, independientemente de que si es emisor o destinatario de los mensajes

deny    condition      = ${lookup ldap{LDAP_AD_MAIL_SERVICE_DENIED_SENDER} {yes}{no}}

        senders        = MAILDOMAIN

        message        = La cuenta $sender_address tiene denegado el acceso al \n\

                         servicio de correo electronico.

        log_message    = Mail Service access for this account $sender_address is denied

deny    condition      = ${lookup ldap{LDAP_AD_MAIL_SERVICE_DENIED_RECIPIENT} {yes}{no}}

        message        = El destinatario al cual le esta tratando de enviar \n\

                         correos tiene denegado el acceso al servicio correo \n\

                         electronico en su dominio.

        domains        = MAILDOMAIN

        log_message    = Mail Service access for the recipient address is denied on his domain

* Reglas que permiten que solamente las cuentas de usuarios en el Directorio Activo o directorio LDAP que son miembros del grupo de usuarios que tienen permitido el acceso al correo electrónico son las que podrán usar el servicio, independientemente de que si es emisor o destinatario de los mensajes

deny    condition      = ${lookup ldap{LDAP_AD_MAIL_SERVICE_ALLOWED_SENDER} {no}{yes}}

        senders        = MAILDOMAIN

        message        = La cuenta $sender_address no tiene aun habilitado el acceso \n\

                         al servicio correo electronico

        log_message    = Mail Service access for this account $sender_address not enabled yet

deny    condition      = ${lookup ldap{LDAP_AD_MAIL_SERVICE_ALLOWED_RECIPIENT} {no}{yes}}

        message        = El destinatario al cual le esta tratando de enviar correos \n\

                         no tiene aun habilitado el acceso al servicio correo \n\

                         electronico en su dominio

        domains        = MAILDOMAIN

        log_message    = Mail Service access for the recipient address not enabled yet on his domain

* Reglas que permiten que solamente las cuentas de usuarios que son miembros del grupo de usuarios que tienen permitido el uso del servicio de correo electrónico pueden enviar y recibir mensajes de correo electrónico, independientemente de si son emisores o destinatarios de los mismos

deny    condition      = ${lookup ldap{LDAP_AD_SENDER_NATIONAL_MAIL_SCOPE} {no}{yes}}

        condition      = ${lookup ldap{LDAP_AD_SENDER_INTERNATIONAL_MAIL_SCOPE} {no}{yes}}

        senders        = MAILDOMAIN

        message        = La cuenta $sender_address tiene acceso servicio correo \n\

                         electronico, pero aun no tiene establecido alcance alguno. \n\

                         Contacte con su administrador si cree que esto es incorrecto

        log_message    = This user account $sender_address have granted access to Mail Service, but it’s have no any scope established yet

deny    condition      = ${lookup ldap{LDAP_AD_RECIPIENT_NATIONAL_MAIL_SCOPE} {no}{yes}}

        condition      = ${lookup ldap{LDAP_AD_RECIPIENT_INTERNATIONAL_MAIL_SCOPE} {no}{yes}}

        domains        = MAILDOMAIN

        message        = El destinatario al cual le esta tratando de enviar correo \n\

                         tiene acceso al servicio correo electronico, pero aun no \n\

                         tiene establecido alcance alguno. Contacte con su \n\

                         administrador si cree que esto es incorrecto

        log_message    = Mail Service access for the recipient address is enabled, but it’s have no any scope established yet

Aquí se ve que existen varias condiciones en la regla, las mismas se evalúan como un AND lógico.

* Reglas para la restricción de salida de correos nacionales desde cuentas de usuarios de correo electrónico que tienen definido alcance nacional solamente

deny    condition      = ${lookup{$sender_address}wildlsearch{FILTERSDIR/national-senders-only}{yes}}

        domains        = ! *.cu

        message        = La cuenta de correo $sender_address no tiene permitida \n\

                         salida de correos con alcance internacional

        log_message    = The outbound international mail is not allowed for the mail account $sender_address

deny    condition      = ${lookup ldap{LDAP_AD_SENDER_NATIONAL_MAIL_SCOPE}{yes}{no}}

        domains        = ! *.cu

        message        = La cuenta de correo $sender_address no tiene permitida \n\

                         salida de correos con alcance internacional

        log_message    = The outbound international mail is not allowed for the mail account $sender_address

A primera vista puede parecer que se duplica esta restricción, pero no es así, sino que la primera complementa a la segunda, dado que en el archivo FILTERDIR/national-senders-only se pueden añadir direcciones de correo de otros subdominios o dominios internos que usan a este servidor como smarthost, aunque también se pueden añadir direcciones de correo del propio dominio si el administrador del servicio lo desea. En fin es a gusto del administrador, aunque yo prefiero usar los grupos en el Directorio Activo o directorio LDAP para controlar el comportamiento de las cuentas de usuario del dominio local, y usar el archivo FILTERDIR/national-senders-only para controlar el alcance del correo electrónico de direcciones de correo de subdominios internos o de direcciones de otros dominios que estén al mismo nivel del local.

* Reglas para la restricción de entrada de correos nacionales hacia cuentas de usuarios de correo electrónico que tienen definido alcance nacional solamente

deny    message        = Esta cuenta de correo electronico no tiene permitida \n\

                         entrada de correos internacionales

        log_message    = The inbound international mails is not allowed for this mail account

        senders        = ! *.cu

        domains        = MAILDOMAIN

        condition      = ${if >{${strlen:$sender_address}}{0}}

        condition      = ${lookup ldap{LDAP_AD_RECIPIENT_NATIONAL_MAIL_SCOPE}{yes}{no}}

deny    message        = Esta cuenta de correo electronico no tiene permitida \n\

                         entrada de correos internacionales

        log_message    = The inbound international mails is not allowed for this mail account

        senders        = ! *.cu

        domains        = MAILDOMAIN

        condition      = ${if >{${strlen:$sender_address}}{0}}

        recipients     = lsearch;FILTERSDIR/national-senders-only

También es válida la aclaración de la ACL anterior para esta.

* Regla para restringir el envío de mensajes solamente desde emisores locales si la sesión se inicia desde las subredes locales autorizadas a hacer relay al servidor. En otras palabras, no permitir que se envíen mensajes de spam desde las redes internas hacia cualquier cuenta de usuario de los dominios locales

deny    message        = Acceso denegado. No es un remitente @MAILDOMAIN o no \n\

                         tiene definido alcance de correo electronico

        log_message    = Access denied. Not @MAILDOMAIN sender or the mail scope is not established yet

        senders        = ! : !MAILDOMAIN : !*.MAILDOMAIN

        condition      = ${lookup{${local_part}@${domain}}wildlsearch{FILTERSDIR/international-recipients-allowed}{no}{yes}}

        condition      = ${lookup ldap{LDAP_AD_RECIPIENT_INTERNATIONAL_MAIL_SCOPE}{no}{yes}}

        condition      = ${lookup ldap{LDAP_AD_RECIPIENT_NATIONAL_MAIL_SCOPE}{no}{yes}}

* Reglas para restringir la cantidad máxima de destinatarios para cualquier mensaje que se envíe o reciba, así como también para los mensajes rebotados o que no tengan emisor definido

deny    message        = No se permiten mas de MAX_RCPT destinatarios.

        log_message    = Too many recipients. Only MAX_RCPT recipients allowed

        condition      = ${if >{$rcpt_count}{MAX_RCPT}}

deny    message        = Por parte de remitentes vacios, solo se acepta un \n\

                         destinatario

        log_message    = Only one recipient accepted for NULL sender

        senders        = :

        condition      = ${if >{$rcpt_count}{1}{1}}

* Esta regla garantiza que todas las sesiones SMTP que se realicen en el servidor sean autenticadas. En otras palabras, nada de sesiones a través de Telnet para spamear o hacer cosas raras

deny    message        = No esta autenticado en el servidor o no pude hacer relay

        !authenticated = *

        hosts          = +auth_from_hosts

Además de esto, también sirve para garantizar que los equipos que hagan relay contra el servidor de correo sean los de las subredes autorizadas al efecto.

* En el caso del uso del protocolo Submission (puerto 587), se debe tener cierto cuidado. Me explico: cuando utilicé el parámetro control = sunmission, se reescribía el campo “From” de todos los mensajes con una cadena nueva que contenía la dirección de correo del emisor más una parte cifrada, lo cual creaba problemas en el envío de mensajes; para resolver el problema tuve que leer muchos manuales en Internet y el manual de Exim, luego de analizar mucha documentación, encontré una variante que no modifica la dirección del emisor, o sea, control = submission/sender_retain

accept  hosts          = +relay_from_hosts : +auth_from_hosts

        domains        = ! +local_domains : ! +virtual_domains

        control        = submission/sender_retain

* Esta regla chequea si el destinatario existe en el servidor de correo que atiende su dominio. El uso de la misma es recomendable solamente para dominios internos o subdominios en los que el servidor de correo le entrega mensajes

require message        = Destinatario no valido

        log_message    = Invalid recipient

        verify         = recipient

 

ACLs para el análisis de la cabecera MIME de los mensajes

* Denegar mensajes que contengan adjuntos con extensiones problemáticas como EXE, PIF, BAT, CMD, etc.

deny    message        = Prohibido el envio de mensajes con este tipo de \n\

                         archivo adjunto. El archivo adjunto $mime_filename, \n\

                         que contiene su mensaje no se puede enviar. Revise \n\

                         su mensaje.

        log_message    = Blacklisted file extension detected on email attachment ($mime_filename)

        condition      = ${if match{${lc:$mime_filename}} \

                            {\N(\.ade|\.adpx|\.app|\.bas|\.bat|\.chm|\.cmd|\.com|\.cpl|\

                                \.crt|\.exe|\.fxp|\.hlp|\.hta|\.inf|\.ins|\.isp|\

                                \.js|\.jse|\.lnk|\.mda|\.mdb|\.mde|\.mdt|\.mdw|\.mdz|\

                                \.msc|\.msi|\.msp|\.mst|\.ops|\.pcd|\.pif|\.prf|\.prg|\

                                \.reg|\.scf|\.scr|\.sct|\.shb|\.shs|\.url|\.vb|\.vbe|\

                                \.vbs|\.wsc|\.wsf|\.wsh|\.xsl)$\N}{1}{0}}

 

ACLs para el análisis del contenido de los mensajes

* Denegar mensajes en cuyo cuerpo contengan archivos adjuntos con extensiones problemáticas como EXE, PIF, BAT, CMD, entre muchas otras y que, generalmente, ningún servidor de correo en Internet acepta

deny    message        = Prohibido el envio de mensajes donde la extension de \n\

                         archivo adjunto no esta permitida

        demime         = ade : adpx : app : bas : bat : chm : cmd : com : cpl: crt : exe : fxp : \

                           hlp : hta : inf : ins : isp : js : jse : lnk : mda : mdb : mde : mdt : \

                           mdw : mdz : msc : msi : msp : mst : ops : pcd : pif : prf : prg : reg : \

                           scf : scr : sct : shb : shs : url : vb : vbe : vbs : wsc : wsf : wsh : \

                           xsl

        log_message    = bl_ext ext=”$found_extension” rcpts=”$recipients” subject=”$h_Subject:”

* Denegar los mensajes que contengan malware

Si el mensaje, una vez que sea analizado por el antivirus, contiene malware, no será entregado. Inicialmente esta sección de la configuración está comentada. Más adelante veremos su activación.

#deny    message        = Este mensaje contiene malware ($malware_name)

#        demime         = *

#        malware        = *

#        log_message    = malware name=”$malware_name” rcpts=”$recipients” subject=”$h_Subject:”

* Denegar los mensajes de Spam

Si el mensaje, una vez que sea analizado por el filtro anti spam, se determina que es un spam, no será entregado. Inicialmente esta sección de la configuración está comentada. Más adelante veremos su activación.

deny    message        = Potencial spam. Puede contactar a postmaster@MAILDOMAIN \n\

                         si cree que esto es incorrecto.

        log_message    = spam score=”$spam_score” rcpts=”$recipients” subject=”$h_Subject:”

        hosts          = ! +relay_from_hosts : ! WHITELISTEDDIR/whitelisted-sa-hosts

        condition      = ${if <{$message_size}{256k}{1}{0}}

        spam           = nobody/defer_ok

warn    message        = X-Spam-Score: $spam_score ($spam_bar)

        spam           = nobody:true/defer_ok

warn    message        = X-Spam-Report: $spam_report

        spam           = nobody/defer_ok

 

  • Configuración de la autenticación de usuarios

 

En cuanto a la autenticación, se utilizarán tres métodos: PLAIN, LOGIN y CRAM-MD5. En los tres casos para la autenticación de los usuarios, se realiza primeramente un binding en el servidor de directorios con las credenciales descritas anteriormente para obtener el nombre distinguido del nombre de usuario, luego se toma este resultado y junto con la contraseña proporcionada se realiza un segundo binding al  propio servidor; si el resultado es satisfactorio, se enviará el mensaje, en caso contrario se rechazará el inicio de sesión de envío.

plain_server:

    driver = plaintext

    public_name = PLAIN

    server_prompts = :

    server_condition = \

        ${lookup ldap{user=”${lookup ldapdn{LDAP_AD_USER_DN}}” \

                      pass=$2 \

                      ldap:///}\

          {yes}fail}

    server_set_id = $1

login_server:

    driver = plaintext

    public_name = LOGIN

    server_prompts = “Username:: : Password::”

    server_condition = \

        ${if ldapauth{user=”${lookup ldapdn{LDAP_AD_USER_DN}}” \

                      pass=${quote:$2} \

                      ldap:///}\

          {yes}{no}}

    server_set_id = $1

cram_md5_server:

    driver = plaintext

    public_name = CRAM-MD5

    server_prompts = “Username:: : Password::”

    server_condition = \

        ${if ldapauth{user=”${lookup ldapdn{LDAP_AD_USER_DN}}” \

                      pass=${quote:$2} \

                      ldap:///}\

          {yes}{no}}

    server_set_id = $1

  • Configuración de los enrutadores de los mensajes

 

Un enrutador o router en Exim es un proceso (en la documentación de Exim se le denomina driver) que opera según las direcciones de correo electrónico y, a su vez, determina cómo realizar la entrega de los mismos. Dicha entrega se completa asignando el mensaje a un transporte específico (en la documentación de Exim se le denomina transport).

En nuestro caso se muestran tres de ellos:

* Enrutador que entrega los mensajes a los dominios locales y virtuales internos

transports:

  driver = manualroute

  domains = ! +local_domains : ! +virtual_domains : wildlsearch;TRANSPORTDIR/transports

  route_data = ${lookup{$domain}wildlsearch{TRANSPORTDIR/transports}}

  same_domain_copy_routing = yes

  transport = remote_smtp

  no_more

* Enrutador que entrega los mensajes salientes a un smarthost o MX superior

.ifdef SMARTHOST_ROUTELIST

smarthost:

  driver = manualroute

  domains = ! +local_domains : ! +virtual_domains

  route_list = SMARTHOST_ROUTELIST

  transport = remote_smtp

.endif

* Enrutador que entrega los mensajes a los buzones de los usuarios virtuales

virtual_user:

  driver = accept

  domains = +virtual_domains

  retry_use_local_part

  cannot_route_message = User unknown

  transport = virtual_delivery

  condition = ${lookup ldap {LDAP_AD_MAIL_RCPT}{yes}{no}}

  • Configuración de los transportes

 

Un transporte o transport en Exim es un proceso que transmite una copia de los mensajes desde el spool de Exim a algún destino. Existen dos tipos de transportación de mensajes: el local transport, en el cual el destino es o un archivo o un proceso de tubería en el equipo local; y el remote transport, donde el destino es un equipo remoto.

Si un mensaje se logra asignar a un transporte específico, entonces el proceso previo (el enrutamiento) fue exitoso.

A continuación se muestra la configuración de los transportes referenciados en los enrutadores antes mencionados:

remote_smtp:

  debug_print = “T: remote_smtp for $local_part@$domain”

  driver = smtp

  dns_qualify_single = false

virtual_delivery:

  debug_print = “T: virtual delivery for $local_part@$domain”

  driver = appendfile

  envelope_to_add = true

  return_path_add = true

  delivery_date_add = true

  user = vmail

  group = vmail

  mode = 0640

  directory_mode = 0750

  create_directory = true

  maildir_format = true

  maildir_use_size_file = true

  maildir_tag = ,S=$message_size

  quota_size_regex = ,S=(\d+)

  quota_is_inclusive = false

  directory = VIRTUAL_MAILBOX_BASEPATH/${domain}/${local_part}/Maildir

  quota = DEFAULT_MAX_QUOTA

  quota_warn_threshold = 75%

Y hasta aquí la configuración general del MTA Exim 4. El contenido de los archivos de datos a los que se hacen referencia se muestra en el Anexo 2. A continuación hay que hacer algunos ajustes posteriores luego de realizar las pruebas pertinentes para pulir el servicio.

3.4.1.- Ajustes posteriores del MTA Exim para la vinculación con el antivirus Clamav

Por defecto la carpeta utilizada para escanear los mensajes de Exim 4, ubicada en /var/spool/exim4/scan, no tiene los permisos requeridos para que Clamav pueda procesar los mensajes que entran y salen por el servidor de correo. Para resolver este problema hay que realizar dos pasos:

  • Añadir el usuario con el que Clamav inicia el servicio (clamav) a los grupos Debian-exim y mail, donde el segundo es el establecido por defecto en /var/spool/exim4/scan:

# usermod -a -G Debian-exim,mail clamav

NOTA: En Internet unos se refieren al primer grupo y otros al segundo. Ahora bien, basado en las pruebas que hice, añadiendo el usuario solamente a uno de los dos grupos no funcionaba. Tuve que añadirlo a los dos grupos para que trabajara correctamente.

 

  • En el archivo de configuración de Clamav, ubicado en /etc/clamav/clamd.conf, hay que realizar un cambio. Modificar el valor del parámetro AllowSupplementaryGroups, o sea, la línea:

AllowSupplementaryGroups false

Se modifica de la siguente manera:

AllowSupplementaryGroups true

Esto para que Clamav utilice los grupos donde está incluido su usuario como grupos adicionales.

Seguidamente hay que reiniciar el servidor para que los cambios [realmente sí] tengan efecto.

Luego descomentar las líneas referentes al uso del antivirus por parte de Exim:

av_scanner = clamd:/var/run/clamav/clamd.ctl

(…)

deny    message        = Este mensaje contiene malware ($malware_name)

        demime         = *

        malware        = *

        log_message    = malware name=”$malware_name” rcpts=”$recipients” subject=”$h_Subject:”

Y reiniciar Exim (aunque yo iría más lejos: reiniciar el servidor completamente) para que los cambios tengan efecto.

En la siguiente parte veremos la configuración del MTA que atiende los protocolos IMAP, IMAPS, POP3 y POP3S.

 

Acerca de Hector Suarez Planas

Es Licenciado en Ciencia de la Computación (3 de julio de 2002). Ha sido Administrador de Red en varias organizaciones, Programador y Analista de Sistemas. Actualmente se desempeña como Administrador de Red del Telecentro Tele Turquino de Santiago de Cuba. Tiene experiencia con sistemas Windows y GNU/Linux, Infraestructura de Redes (Cisco, AlliedTelesis, Netgear y HP ProCurve, Vyatta/VyOS), Servidores tanto físicos como virtuales (plataformas VMWare, Proxmox VE y Xen), Sistemas de Seguridad Informática (Snort/Suricata IDS, appliances AlienVault OSSIM), programador (Delphi, C++ Builder, Perl [poco], Python [algo]), entre otras cosas. Actualmente estoy incursionando en todo lo que tiene relación con Cloud Computing (OpenStack) y Centros de Datos. :-)
Esta entrada fue publicada en Antivirus, Clamav, Correo Electrónico, Debian, Directorio Activo, Exim, Filtro Antispam, Linux, MTA, Spamassassin. Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *