On Feb 25, 2014, at 9:50 AM, Noel Jones wrote:
> On 2/25/2014 4:44 AM, Eivind Olsen wrote:
>> Hello (or should that be EHLO? :))
>>
>> It has been a while since I've had a need to change my Postfix
>> configuration, so I'm a bit rusty. I have searched, checked the
>> configuration, etc. No luck yet.
>>
>> Is it possible to get Postfix to log the hostname presented to it during
>> HELO/EHLO? Any configuration setting I've missed? Or will I have to change
>> the sourcecode for this?
>
>
> If you don't want to patch the source, an easy workaround is to add
> to your header_checks file:
> /^From: / WARN
> which will log some information including the helo. This works with
> any version of postfix.
>
>
>
> If you don't mind a little patch, here's a simple patch I've used
> for years to log the HELO hostname. This will apply to postfix 2.8
> and newer.
That is so qmail-esque (in a good way, seriously). I really like
the idea of logging the helo from a data analysis perspective.
I wonder if you could do this with a simple policy server? IIRC,
the helo is one of the bits of data passed to the policy server, and
logging the IP, to/from, helo and a few other things seems like it
would be pretty simple. And just return an OK. Of course it would
be a totally separate log file, but you'd have the data and you
wouldn't have to alter the postfix source.
Also a quick question on the patch below - if you're running
postscreen, and it has decided a sending host is "bad", will the
connection ever hit the real smtpd daemon and be logged?
Thanks,
Charles
ps - I lurk here and just wanted to say "thanks" to all for postfix
and the list denizens. I just started work on putting an old
qmail/vpopmail setup behind postfix and I'm just consistently blown
away by the flexibility of postfix - it's hard to find an unsolvable
problem.
>
> Sample log entry:
> Feb 25 08:40:39 mx1 postfix/smtpd[30241]: NOQUEUE:
> client=mail.example.com[192.2.0.2], helo=mail.example.com
>
> Note the modified log entry may break some log parsers, but is
> compatible with pflogsumm.pl and postfix-logwatch.
>
>
> (beware line wrapping)
>
> --- /usr/local/src/postfix-2.8-20100728/src/smtpd/smtpd.c Mon
> Jul 26 18:39:39 2010
> +++ src/smtpd/smtpd.c Tue Aug 10 16:42:36 2010
> @@ -1916,13 +1916,16 @@
> #define PRINT2_OR_NULL(cond, name, value) \
> PRINT_OR_NULL((cond), (name)), PRINT_OR_NULL((cond),
> (value))
>
> - msg_info("%s: client=%s%s%s%s%s",
> + msg_info("%s: client=%s%s%s%s%s%s%s%s%s",
> (state->queue_id ? state->queue_id : "NOQUEUE"),
> state->namaddr,
> PRINT2_OR_NULL(HAVE_FORWARDED_IDENT(state),
> ", orig_queue_id=",
> FORWARD_IDENT(state)),
> PRINT2_OR_NULL(HAVE_FORWARDED_CLIENT_ATTR(state),
> - ", orig_client=",
> FORWARD_NAMADDR(state)));
> + ", orig_client=",
> FORWARD_NAMADDR(state)),
> + ", helo=", state->helo_name ? state->helo_name : "",
> + PRINT2_OR_NULL(HAVE_FORWARDED_CLIENT_ATTR(state),
> + ", orig_helo=", FORWARD_HELO(state)
> ? FORWARD_HELO(state) : ""));
> return (0);
> }
>
> --- /usr/local/src/postfix-2.8-20100728/src/smtpd/smtpd_sasl_proto.c
> Mon Jul 26 18:40:14 2010
> +++ src/smtpd/smtpd_sasl_proto.c Tue Aug 10 17:56:42 2010
> @@ -243,7 +243,7 @@
> #define PRINT2_OR_NULL(cond, name, value) \
> PRINT_OR_NULL((cond), (name)), PRINT_OR_NULL((cond),
> (value))
>
> - msg_info("%s: client=%s%s%s%s%s%s%s%s%s%s%s",
> + msg_info("%s: client=%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
> (state->queue_id ? state->queue_id : "NOQUEUE"),
> state->namaddr,
> PRINT2_OR_NULL(state->sasl_method,
> @@ -255,7 +255,10 @@
> PRINT2_OR_NULL(HAVE_FORWARDED_IDENT(state),
> ", orig_queue_id=", FORWARD_IDENT(state)),
> PRINT2_OR_NULL(HAVE_FORWARDED_CLIENT_ATTR(state),
> - ", orig_client=", FORWARD_NAMADDR(state)));
> + ", orig_client=", FORWARD_NAMADDR(state)),
> + ", helo=", state->helo_name ? state->helo_name : "",
> + PRINT2_OR_NULL(HAVE_FORWARDED_CLIENT_ATTR(state),
> + ", orig_helo=", FORWARD_HELO(state) ?
> FORWARD_HELO(state) : ""));
> }
>
> /* smtpd_sasl_mail_reset - SASL-specific MAIL FROM cleanup */
>
>
>
>
>
>
> -- Noel Jones