I'd recommend separating authenticated from unauthenticated submission.
Enable submission (port 587) with authentication required, and remove
permit_sasl_authenticated from the smtpd instance on port 25. For the
submission port you could enable reject_sender_login_mismatch to
restrict senders to their own sender address. If you want them to be
able to use arbitrary addresses for mail sent to local recipients,
but disallow non-local sender addresses for outbound mail, you'll
probably have to use a policy service.
Regards
Ansgar Wiechers
--
"Abstractions save us time working, but they don't save us time learning."
--Joel Spolsky