Virus notification question

Mark Martinec Mark.Martinec+amavis at ijs.si
Thu Feb 16 17:44:39 CET 2012


Stephen,

> Thanks for the feedback Mark.
> I now have a better understanding of this side of amavisd.
> 
> I am using Petr Rohar's amavisd-milter
> (I didn't know you had one).

Yes, Petr's is the only milter interface to amavisd nowadays.
There used to be an equivalent of this in the amavisd-new
package, but I dropped it, as Petr's milter supports the new
AM.PDP protocol and is better maintained.

> Does the $inet_socket_port have any relevance at all in this context?

If you are accepting AM.PDP protocol requests over a Unix
socket ($unix_socketname or its equivalent in @listen_sockets),
and you don't have any other needs for other inet connections
(like from amavisd-release, which can use either a Unix
socket or an inet socket to contact amavisd), then the
$inet_socket_port has no relevance for your setup.

Btw,  starting with 2.7.0, the @listen_sockets is the generic
config setting for all listening sockets. The $inet_socket_bind,
$inet_socket_port, and $unix_socketname are only still there
for compatibility:

- @listen_sockets setting offers a unified configuration of listening
  sockets; it may be configured directly, or the traditional way: the
  $inet_socket_port, $unix_socketname and $inet_socket_bind just add
  their entries to the @listen_sockets list;


> My config has:
> 
> $policy_bank{'AM.PDP-SOCK'} = {
>   protocol => 'AM.PDP',
>   auth_required_release => 0,
>   final_spam_destiny => D_DISCARD
> };

Ok.
This applies to connections coming in over the $unix_socketname.

> And I have changed $notify_method to:
>   $notify_method  = 'smtp:[127.0.0.1]:587';
> (I can live with the unlikely reject).

Ok.

Keep in mind that a notification or DSN generated by amavisd
and submitted to the $notify_method will need to be accepted
and processed by MTA in order for the current mail processing
can continue. If the MTA will invoke milter/amavisd for this
submission too, there needs to be a spare amavisd process
available to handle this, otherwise we end up in a deadlock.

In practice this may be acceptable with sufficient number
of child processes. However if the $max_servers is small
(like 2, as may be a default), the likelihood of such a lockup
becomes real.

> $final_virus_destiny = D_DISCARD;
> 
> Are there any other settings relevant to the milter context?

Nothing comes to mind.

There are some differences between a milter approach and
the SMTP approach. With milter, amavisd can't split the
passed message, so if a message has multiple recipients
and they differ in their requirements (e.g. defanging,
header edits), these individual needs won't be met.

> PS My bogofilter version of amavisd seems to be working perfectly.

Good.
I left it running with my modified patch here for a couple of days
too, just to see that it works.

  Mark


More information about the amavis-users mailing list