You can stick a web server in a DMZ as a reverse proxy, then only allow secure web traffic to that reverse proxy from the internet, and only allow secure web traffic from the reverse proxy to the internal servers.
Commission an external vulnerability test afterwards to make sure you know your exposure (and update it regularly).
What about seamless VPNs? Something like a AlwaysOn VPN setup for Windows 10 and an On Demand VPN profile for iOS/Android. These can be setup to auto connect silently in the background based on URLs or Apps.
There are heaps of options for the proxy. Some UTM/Firewalls will have reverse proxies built in. You can build your own using HAproxy in Ubuntu, nginx/apache in any linux distro or IIS in Windows server. Then place the HAproxy in an edge DMZ separated from your other infrastructure. Be sure to harden your OS and do not domain join this infrastructure.
2FA can be achieved using a series of add-ons for confuence, eg: DUO
Be sure to configure your 2FA such that it doesn’t ask for 2FA when accessing resources from within the network or from known trusted IPs (eg: branch office public IPs).
If you have an HTML5 VPN portal you can publish those pages to it. This way you point your people to the URL and they log in and have bookmarks to all your internal sights.
+1 for setting up a proper reverse proxy (DMZ dependant of network setup and cloud / on-Orem)
Don’t go direct to servers running the systems, new machine / vm running apache / nginx with a correct dns and certificates to handle ssl and proxy pass down to the servers under (many setups can be found online, think atlassian has an almost step by step guide for nginx for confluence / jira)
Firewall the reverse proxy to only allow connections from ip(s) you know, harden all the things, scan regularly, setup a vpn as well if desired as that can also add 2factir auth
It’s fairly easy to set up. I have some of our internal IIS sites that rely on AD auth using Azure AD as it is able to change the user’s UPN to fit our on-prem requirements. I also just have App Proxy working like a reverse proxy for some of our static sites. No poking holes in firewalls needed.