[postfix-es] Comprobacion multiple en cabecera del mensaje
Joseba Torre
joseba.torre en ehu.es
Jue Mar 14 11:37:45 CET 2013
El 14/03/13 11:05, contertulio escribió:
> Estimados amigos, necesito saber si en Postfix existe alguna forma de
> concatenar estas dos condiciones de forma que rechace aquellos mensajes que
> cumpla las dos condiciones a la vez.
>
> /From: (.*)@dominio.com(.*)/ AND /To: (.*)@dominio1.com(.*)/ REJECT
No lo he usado nunca en realidad, pero con tablas pcre y header_checks
puedes hacer prácticamente lo que quieras. Te pongo un ejemplo que no
está relacionado con esto, pero igual te sirve ayuda:
/etc/postfix/main.cf:
header_checks = pcre:/etc/postfix/header_checks
body_checks = pcre:/etc/postfix/body_checks
/etc/postfix/header_checks:
# Do not indent the patterns between "if" and "endif".
if /^Received:/
/^Received: +from +(porcupine\.org) +/
reject forged client name in Received: header: $1
/^Received: +from +[^ ]+ +\(([^ ]+ +[he]+lo=|[he]+lo
+)(porcupine\.org)\)/
reject forged client name in Received: header: $2
/^Received:.* +by +(porcupine\.org)\b/
reject forged mail server name in Received: header: $1
endif
/^Message-ID:.* <!&!/ DUNNO
/^Message-ID:.*@(porcupine\.org)/
reject forged domain name in Message-ID: header: $1
/etc/postfix/body_checks:
# Do not indent the patterns between "if" and "endif".
if /^[> ]*Received:/
/^[> ]*Received: +from +(porcupine\.org) /
reject forged client name in Received: header: $1
/^[> ]*Received: +from +[^ ]+ +\(([^ ]+ +[he]+lo=|[he]+lo
+)(porcupine\.org)\)/
reject forged client name in Received: header: $2
/^[> ]*Received:.* +by +(porcupine\.org)\b/
reject forged mail server name in Received: header: $1
endif
/^[> ]*Message-ID:.* <!&!/ DUNNO
/^[> ]*Message-ID:.*@(porcupine\.org)/
reject forged domain name in Message-ID: header: $1
Igual puedes hacerlo también tablas regexp
Aaaaaaaaagur.
Más información sobre la lista de distribución postfix-es