

I would never do something like that. It’s actually a sad story: I had a server that had to be exposed to the public, and not long ago, it was compromised by the latest PHP vulnerability. Fortunately, the damage wasn’t too severe. Since then, my policy has been to only expose services to the public that must be accessible to strangers, and I never expose administrative access points to the public internet. SSH access is restricted to key-based authentication, and the admin panel is accessible only from the internal network or via VPN. Two-factor authentication protects against password guessing, but it cannot prevent vulnerabilities that can be exploited before the login process even begins.
This week, I’ve mainly been handling the fallout from the PHP vulnerability that occurred in late October. Following that incident, I made a few changes: I’ve opened only the necessary ports to the outside world, and the admin panel is now accessible only via VPN. I’ve created an inventory list for each server, clearly detailing which services are running and their versions, so that the next time a CVE is released, I’ll know immediately which servers are affected. In addition to running daily automatic backups, I periodically restore them to a clean machine to verify they work.
Remember: Always treat your servers as if they might be lost tomorrow, and make sure to have a thorough recovery plan in place.