Hi,
I used some regex filters in the past which I'm trying to convert to the
latest builtin filters. In particular, I stumbled over a HELO filter,
which rejects non-FQDN HELO forcing SMTP protocol, aka:
Sendmail FEATURE(block_bad_helo) or Postfix reject_non_fqdn_helo_hostname
I had significant success rate with this kind of blocking, since a good
portions of spammers seem to be too lazy to configure HELO correctly.
Here is what I came up with:
# reject HELO/EHLO with leading or trailing dot, and without dots (non-FQDN)
filter helo phase helo connect match helo regex { "^\.", "\.$", "^[^\.]*$" }
disconnect "554 5.7.1 HELO rejected"
filter ehlo phase ehlo connect match helo regex { "^\.", "\.$", "^[^\.]*$" }
disconnect "554 5.7.1 EHLO rejected
Now, I just need a way to skip/allow IPv6 address literals, e.g. there
are no dots in EHLO [::1], but still a valid/allowed value.
With old filter-regex I just did a negotiation: ! regex "^\[" to
not apply filter to v6 literals
Any ideas/hints how to add/implement this with the new builtin regex
filter syntax?
Thanks,
Regards,
Joerg