On 9/9/2019 7:16 AM, Jan Ingvoldstad via Exim-users wrote:
I've had another variant for years:

acl_check_mail:
   deny
     message = no HELO given before MAIL command
     condition = ${if def:sender_helo_name {no}{yes}}
     delay = 60s

The delay is a nice touch, if you have the TCP connections to spare.

Jan

On Mon, Sep 9, 2019 at 4:10 PM Phillip Carroll via Exim-users <
[email protected]> wrote:

my configuration has had something similar for years. Is there any
significant difference?

acl_check_mail:
    # deny any mail without helo name
    deny    message = HELO required before MAIL
            condition = ${if eq{$sender_helo_name}{} {1}}

(Yours obviously simpler to read)

On 9/6/2019 6:16 PM, Phil Pennock via Exim-users wrote:
On 2019-09-06 at 22:04 +0200, Heiko Schlittermann via Exim-users wrote:
The HELO ACL doesn't help either, as the first EHLO comes before
STARTTLS, and the second EHLO doesn't have to come, the client may send

Oh pox.  My memory is going.  I hadn't realized that my protection
against this comes from long-standing local configuration, not Exim
defaulting to enforcing this:

acl_check_mail:
    deny    message       = 503 Bad sequence of commands - must send
HELO/EHLO first
            condition     = ${if !def:sender_helo_name}

If anyone wants to protect against stupidity: I've been using that guard
for "longer than the five years that the current mail-server is running"
and I'm not going diving through git history to find when it was
introduced to my older server.

To the best of my knowledge, that has never blocked legitimate mail.
Everyone does EHLO after STARTTLS.

Exim drops pre-TLS sender_helo_name after negotiating TLS.  This is
required by RFC 3207 (section 4.2) but not explicitly mentioned in the
Exim Spec, AFAICT.

-Phil


--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/




I don't think a delay would matter much. My server is not very busy---average 1500 or so entries in main log daily. The vast majority of my site's rejections are due to spamhaus lookups. (A hundred or so daily)

My archived logs go back four years. I just did a full archive search on the deny message I posted a little earlier. ("HELO required before MAIL")

Over those 4 years, the server has logged that message a total of only 7 times, on 3 separate dates. The first 3 instances were logged on a total of two dates in 2017. The remaining 4 were on June 27 this year, by a Latvian host. I conclude this is not a very frequent attack mode.

The Latvian host's attempts are sort of interesting:

My configuration has a later check in acl_check_mail that requires HELO to match the host unless/until whitelisted. It does a temporary rejection on a mismatch. (Being small lets me use somewhat drastic measures. I check the log daily for these and either blacklist or whitelist the host in that trap. Legitimate hosts keep retrying for days. )

The Latvian host initially was trying to make connection appear to come from my server. The sequence:

(1) The first attempt was rejected by the HELO/host mismatch. (HELO sent was "localhost")

(2) A few milliseconds later, a second attempt got the same rejection due to mismatch. (This time HELO was my own domain)

(3) A half-hour later, there were two concurrent connections that were lost after about 5 seconds each, because no mail was sent. No idea what was in those SMTP dialogs. (I don't see an explicit timeout that length in the .conf. Is that a default timeout?

(4) Seven minutes later, same attempt as (3) lost due to no mail after several seconds.

(5) Six minutes after (4):
"rejected HELO ... syntactically invalid argument(s): (no argument given)"; immediately followed by the empty HELO rejection in acl_check_mail.

This was repeated a minute later, then twice more 50 minutes after that, for a total of four times with no HELO - proceed directly to mail.

The following day, there was another attempt using the localhost and my domain. They then gave up.

Phil Carroll


--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to