How can I prevent access to /wp-admin and wp-login.php for all members?

I would like to prevent all access to /wp-admin and wp-login.php for ALL non admin members. I'd also like to give members the ability to login/logout via the Membership login widget.

Ideally, if someone (non admin) tries to access /wp-admin or wp-login it would just redirect to a /login page which allows them to log in or out.

I've seen this done before, I just need some guidance on where to do it.

Thanks very much,