I am looking to use a VPN server to prevent MiTM attacks associated with insecure network access points. Is it safer to run a VPN server at home over using someone else's VPN server or is it a waste of time?
This is a question whom do you trust:
- If you trust someone to offer the features, security, privacy... you expect from the VPN then you might use the offered VPN.
- If you consider yourself firm enough in network security to run your own server you might do it.
- If none of this is the case use the option with the lowest risk and somehow deal with the remaining risk.
I am using a VPN because I am running a business and the threat is mitm attacks
Please note that a VPN does not fully protect you against MITM attacks. It only provides a secure tunnel to some VPN endpoint and from than on you are again on your own. To secure the rest of the connection from the VPN endpoint to some server against MITM you would still need to use HTTPS or similar end-to-end encryption.
As I understand it, you're saying that you want to use a VPN so that when you connect to an untrusted public wifi network, your security situation is the same as it would be when connecting from home (which is not unreasonable).
For this purpose there's not much technical difference between running your own server and using a reputable (i.e. paid-for) VPN service. However, realistically, the commercial service will be more reliable, and more diligent about security than you could be with your home network; it's basically the whole of their business.
Connecting to free public VPN services is highly dubious from a security standpoint; far more so than running your own server.
Bear in mind that if you only connect to web sites and mail servers using SSL/TLS, that provides comparable security to using a VPN-- you get strong end-to-end encryption either way-- and of course it's faster. TLS and L2TP/IPSec are both secure against eavesdropping even where an intermediate router is evil. Of course, a VPN is arguably more "foolproof" since your computer may be making insecure connections without your knowledge, e.g. for software updates, and the VPN guarantees that even these will be encrypted.
I'm assuming this is for personal use. The way you connect to the internet may be subject to special rules from your employer, or from military / banking / healthcare etc. regulations, in which case you need to follow those rules.