I think the problem will be solved if linux.lan was added to virtual_alias_domains instead of virtual_mailbox_domains.
For example here's what I get for following queries:
returns nothing, which means linux.lan IS NOT a virtual_alias_domain
# postmap -q "linux.lan" ldap://opt/zimbra/conf/ldap-vad.cf
which means linux.lan is a VIRTUAL MAILBOX domain, which means a 'local' delivery is never going to be attempted for linux.lan
# postmap -q "linux.lan" ldap://opt/zimbra/conf/ldap-vmd.cf
I learn that local delivery will be attempted for virtual_alias_domain.
I think changing the domain type (zimbraDomainType) for linux.lan from 'local' which is what it is right now, to 'alias', will put linux.lan in the virtual_alias_domain list, see /opt/zimbra/conf/ldap-vad.cf query filter:
What do you think?
query_filter = (&(zimbraDomainName=%s)(zimbraDomainType=alias)(zimbraMailStatus=enabled))