¿Cómo bloquear archivos adjuntos en correos entrantes solo usando Postfix?

9

Tengo un servidor de correo (CentOS 6.5) que ejecuta Postfix y Dovecot

Postfix está escuchando en el puerto 25 para el correo entrante y 587 para el correo saliente

El problema es que el correo saliente con archivos adjuntos pdf se está bloqueando donde solo quiero que se bloquee el correo entrante con archivos adjuntos pdf.

Tengo esta línea de configuración en main.cf

 mime_header_checks = regexp:/etc/postfix/blocked_attachments

El archivo blocks_attachments contiene:

/name=[^>]*\.(pdf|zip)/ REJECT

Por lo tanto, el correo entrante con un archivo PDF adjunto se bloquea correctamente, pero cuando redacto un correo electrónico con un PDF que también se bloquea cuando intento enviarlo.

¿Cómo puedo decirle a Postfix que solo quiero que se filtren los archivos adjuntos entrantes? ¿O me he perdido algo?

Aditya K
fuente

Respuestas:

7

Reescribiré tu pregunta y conviértete en:

¿Cómo puedo usar diferentes _header_checks para smtpd (puerto 25) y envío (puerto 587)?

Este problema canónico se puede dividir con varias condiciones.

  1. Quiero desactivar header_checks para uno de smtpd o envío.
  2. Quiero ejecutar diferentes header_checks para smtpd y envío.

1. Quiero desactivar header_checks para uno de smtpd o envío.

Para el ejemplo, supongo que desea desactivar el header_checks para el envío (correo electrónico saliente) .

Solución 1: método Receive_override_options

Puede usar el parámetro postfix denominado Receive_override_options . Con el parámetro, puede anular el modificador global header_check para que el filtro no se ejecute. # main.cf header_checks = pcre: / path / to / header_checks

#master.cf
submission inet n       -       n       -       -       smtpd
    -o receive_override_options=no_header_body_checks

Advertencias: esto desactivará TODOS _header_checks y body_checks definidos en man 5 header_checks . Para el control completo sobre qué parámetro se desactivará, consulte la Solución 2.

Solución 2: método de servicio de limpieza múltiple

Podemos realizar una técnica de servicio de limpieza múltiple para su problema tal como *_header_checkslo realizó el servicio de limpieza . Puede ver el ejemplo de esta configuración en un tutorial nuevo de amavisd .

El parámetro mágico para esta configuración es cleanup_service_name . Con este parámetro, podemos usar diferentes servicios de limpieza para cada proceso smtpd. Primero definimos un servicio de limpieza adicional (llamado no-headerchecks) en master.cf

no-headerchecks unix    n       -       n       -       0       cleanup
    -o mime_header_checks=

En esta limpieza, definimos mime_header_checks vacíos para deshabilitar el filtrado. El último paso es decirle al servicio de envío que use nuestras comprobaciones sin encabezado

submission inet n       -       n       -       -       smtpd
    -o cleanup_service_name=no-headerchecks 

2. Quiero ejecutar diferentes header_checks para smtpd y envío.

Para este problema, puede utilizar el método de servicio de limpieza múltiple como se describe anteriormente.

Primero definimos un servicio de limpieza adicional (llamado second-headerchecks) en master.cf

second-headerchecks unix    n       -       n       -       0       cleanup
    -o mime_header_checks=pcre:/path/to/2ndheaderchecks

En esta limpieza, definimos el segundo mime_header_checks para otra tabla PCRE. El último paso es indicarle al servicio de envío que use nuestras segundas verificaciones de encabezado

submission inet n       -       n       -       -       smtpd
    -o cleanup_service_name=second-headerchecks

Nota:

  • Su caso se ve similar con esta pregunta . Lamentablemente, la respuesta de Laurentiu Roescu solo funciona si desea habilitar header_checks para el correo saliente que utiliza smtp como transporte. La buena noticia es que su primera oración sobre cleanupDaemon nos da una idea para la segunda solución.

  • Se pueden aplicar varios métodos de servicio de limpieza si desea diferentes encabezados_checks, body_checks y otros parámetros definidos man 5 header_checks.

masegaloeh
fuente