I'm trying to build a home automation system using MQTT. I'm using a Raspberry Pi as the broker. Everything works great as far as controlling it when connected to the same network. But I want to have the functionality of being able to control it from an external network. I don't want to just open a port that anyone can send traffic through. What's the best way to set up external control of the MQTT network securely so only devices that I want can connect and control it?