OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
Postfix Archives: Re: .forward loops (long)

Re: .forward loops (long)


Subject: Re: .forward loops (long)
From: Liviu Daia (Liviu.Daiaimar.ro)
Date: Thu Jan 27 2000 - 13:12:20 CST


    Ok, second try, in a naive attempt somebody will actually try to
understand my babbling this time.

    To recap: writing

        username

in ~username/.forward results in bounced messages because of "mail
forwarding loop for usernameaddres". I'm attaching the logs from
"local -v" (bare with me, it gets interesting after about 80 lines).

postfix/local[16279]: set_eugid: euid 46 egid 47
postfix/local[16279]: name_mask: alias
postfix/local[16279]: name_mask: forward
postfix/local[16279]: name_mask: alias
postfix/local[16279]: name_mask: forward
postfix/local[16279]: name_mask: canonical
postfix/local[16279]: name_mask: virtual
postfix/local[16279]: name_mask: forward
postfix/local[16279]: watchdog_create: 0x80722c8 18000
postfix/local[16279]: watchdog_stop: 0x80722c8
postfix/local[16279]: watchdog_start: 0x80722c8
postfix/local[16279]: connection established
postfix/local[16279]: master_notify: status 0
postfix/local[16279]: deliver_request_initial: send initial status
postfix/local[16279]: print int: 0
postfix/local[16279]: mail_scan_any: read string: active
postfix/local[16279]: mail_scan_any: read string: F005F18C329
postfix/local[16279]: mail_scan_any: read long integer: 106
postfix/local[16279]: mail_scan_any: read long integer: 669
postfix/local[16279]: mail_scan_any: read string: username
postfix/local[16279]: mail_scan_any: read string: Liviu.Daiaimar.ro
postfix/local[16279]: mail_scan_any: read string: Liviu.Daiaimar.ro
postfix/local[16279]: mail_scan_any: read string:
postfix/local[16279]: mail_scan_any: read long integer: 948856299
postfix/local[16279]: mail_scan_any: read long integer: 48
postfix/local[16279]: mail_scan_any: read string: usernamepompeiu.imar.ro
postfix/local[16279]: mail_scan_any: read long integer: 0
postfix/local[16279]: deliver_request_get: file active/F005F18C329
postfix/local[16279]: local_deliver: F005F18C329 from Liviu.Daiaimar.ro
postfix/local[16279]: local_deliver[0]: reset owner attr
postfix/local[16279]: local_deliver[0]: reset user_attr
postfix/local[16279]: deliver_recipient[1]: local recip usernamepompeiu.imar.ro exten deliver exp_from
postfix/local[16279]: been_here: recipient 1 usernamepompeiu.imar.ro: 0
postfix/local[16279]: level: 0
postfix/local[16279]: path: active/F005F18C329
postfix/local[16279]: fp: 0x8073c48
postfix/local[16279]: queue_name: active
postfix/local[16279]: queue_id: F005F18C329
postfix/local[16279]: offset: 106
postfix/local[16279]: sender: Liviu.Daiaimar.ro
postfix/local[16279]: recipient: usernamepompeiu.imar.ro
postfix/local[16279]: domain: pompeiu.imar.ro
postfix/local[16279]: local: username
postfix/local[16279]: user: username
postfix/local[16279]: extension: null
postfix/local[16279]: unmatched: null
postfix/local[16279]: owner: null
postfix/local[16279]: delivered: usernamepompeiu.imar.ro
postfix/local[16279]: relay: local
postfix/local[16279]: exp_type: 0
postfix/local[16279]: exp_from: null
postfix/local[16279]: deliver_switch[2]: local username recip usernamepompeiu.imar.ro exten deliver usernamepompeiu.imar.ro exp_from
postfix/local[16279]: deliver_alias[3]: local username recip usernamepompeiu.imar.ro exten deliver usernamepompeiu.imar.ro exp_from
postfix/local[16279]: maps_append: hash:/etc/postfix/aliases
postfix/local[16279]: dict_open: hash:/etc/postfix/aliases
postfix/local[16279]: deliver_alias: hash:/etc/postfix/aliases: username not found
postfix/local[16279]: deliver_dotforward[3]: local username recip usernamepompeiu.imar.ro exten deliver usernamepompeiu.imar.ro exp_from
postfix/local[16279]: deliver_dotforward[3]: set user_attr: username
postfix/local[16279]: mac_expand_callback: home = /home/username
postfix/local[16279]: mac_expand_callback: /.forward = /.forward
postfix/local[16279]: mac_expand_callback: recipient_delimiter = +
postfix/local[16279]: mac_expand_callback: extension = (undef)
postfix/local[16279]: mac_expand_callback: home = /home/username
postfix/local[16279]: mac_expand_callback: /.forward = /.forward
postfix/local[16279]: set_eugid: euid 576 egid 107
postfix/local[16279]: set_eugid: euid 46 egid 47
postfix/local[16279]: deliver_dotforward: path /home/username/.forward expand_status 0 look_status 0
postfix/local[16279]: been_here: forward /home/username/.forward: 0
postfix/local[16279]: set_eugid: euid 576 egid 107
postfix/local[16279]: set_eugid: euid 46 egid 47
postfix/local[16279]: deliver_token_stream: unknown_stream
postfix/local[16279]: deliver_token_string: \username?
postfix/local[16279]: deliver_token: username
postfix/local[16279]: deliver_resolve_tree[4]: local username recip usernamepompeiu.imar.ro exten deliver usernamepompeiu.imar.ro exp_from username
postfix/local[16279]: tok822_rewrite: input: username
postfix/local[16279]: connect to subsystem private/rewrite
postfix/local[16279]: print string: rewrite
postfix/local[16279]: print string: canonicalize
postfix/local[16279]: print string: username
postfix/local[16279]: mail_scan_any: read string: usernameimar.ro
postfix/local[16279]: rewrite_clnt: canonicalize: username -> usernameimar.ro
postfix/local[16279]: tok822_rewrite: result: usernameimar.ro

    Ouch. Now, why do I get this rewrite here? I _am_ using a
recipient_canonical table, but "username" is not mentioned there. The
transport table contains entries for the addresses mentioned in
$mydestination, as recommended by the FAQ:

        pompeiu.imar.ro local:
        localhost.imar.ro local:

--- and nothing else.

    The rest of "local -v" logs is uninteresting: the message goes
to the smtp port, and it's bounced later because it already has a
"Delivered-To:".

postfix/local[16279]: print string: resolve
postfix/local[16279]: print string: usernameimar.ro
postfix/local[16279]: mail_scan_any: read string: smtp
postfix/local[16279]: mail_scan_any: read string: imar.ro
postfix/local[16279]: mail_scan_any: read string: usernameimar.ro
postfix/local[16279]: mail_scan_any: read integer: 0
postfix/local[16279]: resolve_clnt_query: `usernameimar.ro' -> t=`smtp' h=`imar.ro' r=`usernameimar.ro'
postfix/local[16279]: tok822_resolve: addr=usernameimar.ro -> chan=smtp, host=imar.ro, rcpt=usernameimar.ro
postfix/local[16279]: deliver_indirect: usernameimar.ro
postfix/local[16279]: been_here: indirect usernameimar.ro: 0
postfix/local[16279]: forward delivered=usernamepompeiu.imar.ro sender=Liviu.Daiaimar.ro recip=usernameimar.ro
postfix/local[16279]: connect to subsystem private/cleanup
[...]

    So I'm asking again: is this supposed to work? And if it is, how?

    Regards,

    Liviu Daia

On 25 January 2000, Wietse Venema <wietseporcupine.org> wrote:
> I routinely test with .forward files containing
>
> username
>
> or
>
> usernamelocalhost
>
> Not a problem. The \ prefix forces mailbox delivery and can't loop.
>
> However, "mail forwarding loop" means the mail with delivered-to is
> delivered again to the same address, so you *do* have a genuine mailer
> loop.
>
> Wietse
>
> Liviu Daia:
> > I'm trying to achieve the moral equivalent of sendmail's
> >
> > \user, usersome.other.address
> >
> > in .forward files, and the only result I've managed to get so far
> > is a bunch of bounced messages because of "mail forwarding loop for
> > useraddres". Is this supposed to work these days? If yes, what
> > am I missing? Configuration details included after signature; more
> > information available upon request.
> >
> > Regards,
> >
> > Liviu Daia
> >
> >
> >
> > ~user/.forward:
> > ===============
> >
> > user, usersome.other.address
> >
> >
> > postconf -n:
> > ============
> >
> > alias_database = hash:$config_directory/aliases
> > alias_maps = hash:$config_directory/aliases
> > allow_percent_hack = no
> > allow_untrusted_routing = no
> > biff = no
> > default_privs = nobody
> > delay_warning_time = 4
> > disable_vrfy_command = yes
> > header_checks = pcre:$config_directory/access_hdr
> > local_destination_concurrency_limit = 2
> > local_recipient_maps = $relocated_maps $alias_maps unix:passwd.byname
> > mail_owner = postfix
> > maps_rbl_domains = rbl.maps.vix.com, dul.maps.vix.com
> > mydestination = $myhostname, localhost.$mydomain
> > mydomain = imar.ro
> > myhostname = pompeiu.imar.ro
> > mynetworks = 127.0.0.0/8
> > 193.226.4.0/24
> > 192.129.3.38
> > 192.129.3.41
> > myorigin = $mydomain
> > notify_classes = resource, software
> > prepend_delivered_header = forward
> > program_directory = /usr/postfix
> > qmgr_fudge_factor = 20
> > recipient_canonical_maps = hash:$config_directory/recipient_canonical
> > recipient_delimiter = +
> > relay_domains = $mydestination
> > $virtual_maps
> > dial1-imar.bucharest.roedu.net
> > dial2-imar.bucharest.roedu.net
> > relocated_maps = hash:$config_directory/relocated
> > sender_canonical_maps = hash:$config_directory/sender_canonical
> > smtp_skip_4xx_greeting = yes
> > smtpd_client_restrictions =
> > smtpd_etrn_restrictions = permit_mynetworks, reject
> > smtpd_helo_required = yes
> > smtpd_helo_restrictions = permit_mynetworks
> > permit_naked_ip_address
> > reject_invalid_hostname
> > smtpd_recipient_restrictions =
> > check_recipient_access regexp:/etc/postfix/access_recipient
> > check_client_access regexp:/etc/postfix/access_client
> > check_sender_access regexp:/etc/postfix/access_sender
> > check_sender_access regexp:/etc/postfix/access_client
> > permit_mynetworks
> > reject_non_fqdn_sender
> > reject_non_fqdn_recipient
> > reject_unknown_recipient_domain
> > reject_unauth_pipelining
> > reject_unauth_destination
> > reject_maps_rbl
> > smtpd_sender_restrictions =
> > transport_maps = hash:$config_directory/transport
> > unknown_address_reject_code = 550
> > unknown_client_reject_code = 550
> > virtual_maps = hash:$config_directory/virtual
> >
> >
> > /etc/postfix/virtual:
> > =====================
> >
> > First.Lastimar.ro userpompeiu.imar.ro
> > userimar.ro userpompeiu.imar.ro
> >
> >
> > relevant log entries:
> > =====================
> >
> > Jan 25 10:05:37 pompeiu postfix/local[2737]: C8B7618C268: to=<userpompeiu.imar.ro>, relay=local, delay=0, status=sent (forwarded as DA78F18C26D)
> > Jan 25 10:05:38 pompeiu postfix/local[2737]: DA78F18C26D: to=<userpompeiu.imar.ro>, relay=local, delay=0, status=bounced (mail forwarding loop for userpompeiu.imar.ro)

-- 
Dr. Liviu Daia               e-mail:   Liviu.Daiaimar.ro
Institute of Mathematics     web page: http://www.imar.ro/~daia
of the Romanian Academy      PGP key:  http://www.imar.ro/~daia/daia.asc



This archive was generated by hypermail 2b27 : Thu Jan 27 2000 - 13:11:46 CST