I run openvpn on my linux box to do exactly that. Already running apache/bind/postfix/xmpp with legacy Im bridges so adding openvpn was a logical next step.
#protip run it on port 443. makes it much easier to get around firewalls. Even with deep packet inspection, SSL traffic is expected on that port.
I have business class att dsl and 7 static ip addresses. I run a dell optiplex desktop 24x7 and it sips power.
You could also just host services in a Colo for around 20.00 a month for dedicated virtual server. You would probably pay that anyway to a company who provided the services you mentioned. Lots of risk with being smtp relay for the world. Just ask yahoo/sbc who provide large swaths of southern California with net access. They provide dns and authenticated/encrypted smtp outbound and charge 14.95 a month for the cheap package.