Jon Ribbens:
> In access(5), the documentation says (in regard to HOST NAME/ADDRESS
> PATTERNS):
> 
>   domain.tld
>          Matches domain.tld.
> 
> However it fails to indicate what this actually *means*. This seems to
> be a bit of a documentation failure. Which one of the following is it?

DESCRIPTION
       This  document  describes access control on remote SMTP client informa-
       tion: host names, network addresses, and envelope sender  or  recipient
       addresses;   it  is  implemented  by  the  Postfix  SMTP  server. 

Thus, it takes Postfix's idea of the client host name and compares
that name against the string "domain.tld".

Not documented here is that check_client_access uses a hostname of
"unknown" when the address->name lookup fails, or when the name
does not resolve to the client IP address.

It can't be documented here, because check_reverse_client_hostname_access
uses the same access map mechanism using the address->name lookup
result, but without the name->address verification check.

Nor is documented here that these name->address and address->name
lookups use system getnameinfo/getaddrinfo routines, whose results
are subject to munging by nsswitch.conf and similar mechanisms.

>   (a) Match an IP address whose reverse DNS matches 'domain.tld'.
>   (b) (a), with a subsequent forward-lookup to check it isn't a fake
>       reverse DNS entry.
>   (c) Match an IP address which is listed as one of the results for an
>       A-record lookup of 'doman.tld'.
>   (d) Something else.
> 
> I have a situation where I have a DNS record 'foo.example.com', which
> resolves to multiple A records. I want to allow mail transactions if
> and only if the incoming connection is from one of those IP addresses.
> Is this possible with Postfix, and if so, how?

check_client_access requires that the address->name lookup produces
a name that resolves to the client IP address.

check_reverse_client_hostname_access is less restrictive.

        Wietse

Reply via email to