I'm not entirely sure what the actual question is. Can you rephrase what exactly you are trying to accomplish?
VPN needs to come in from my domain IP, but exit from my network. What network security best practices should I be implementing?
Best practices comes down to what you do or do not want the VPN clients to access. This mostly comes down to routing and firewall rules.
So, what should your users have access to?
Also what is the vpn?
Some users just need to be able to exit my home network.
I would like to, maybe, in the future have a file server/jellyfin, have access to other devices on my network and if I'm somewhere with low enough latency stream games off steam.
Just wanted to say, thanks for asking me for further details. You could have been a dick about my unclear initial post, and I appreciate your just picking away at it until I was a bit more specific about what I was actually asking for.
If this was reddit the whole thing would've been a fair bit more hostile.
You did not answer what VPN tech you are using.
Without that knowledge i would recommend setting up tailscale and having your users use that. If you want to be fully self hosted you can also run Headscale as the control plane instead of relying on Tailscales own service.
I recommend tailscale as it is very easy to grant a user privileges to ONLY use an endpoint as an exit node but also grant access to any other endpoints as needed (such as your future jellyfin server) via theor ACLs.
Ah, yeah, sorry. Currently I'm using WireGuard, but I'm open to using something else.
I'll have a look at Tail/Headscale, this was very informative, thank you very much.
In the scope of wireguard it'll just be a matter of you building appropriate firewall rules.
Since you want their internet traffic to go through you then i assime you're effectively pushing a 0.0.0.0/0 route to your clients. You then need to add firewall rules on your server to block traffic to its local subnet and in the future allow traffic to only your jellyfin server.
This is also pretty simple and nothing wrong with that setup.
Thanks so much for taking the time to give me this info.
Yeah, but also would be interested in how you put it together.
I have a couple of services, including nginx (a website) that run though a Cloudflare Tunnel. No need to open up ports and certificates are automatically managed.
https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
I also use ddclient to update my own personal domain with my internets dynamic IP (no need for a dynamic DNS provider). I have to do this as I host Jellyfin and Cloudflare don't support streaming through their tunnels. So yes this is exposed to the internet. It does sit behind a caddy reverse proxy though.
I also run a wireguard VPN so that I can dial in when out the home. Im in Spain next week so can use that to get BBC iPlayer etc. The wireguard uses an address that is dynamically updated by ddclient (domain is hosted by Cloudflare)
Emails I don't bother self hosting. I actually pay for simplelogin and send emails there via aliases. They then route to a single Proton email address.
Email is going through my domain to ProtonMail, was really easy to set up, and works like a charm.
This is all good info, thanks! Gives me a bit of reading to do before I start shifting everything over.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:
Fewer Letters | More Letters |
---|---|
DNS | Domain Name Service/System |
HTTP | Hypertext Transfer Protocol, the Web |
IP | Internet Protocol |
VPN | Virtual Private Network |
nginx | Popular HTTP server |
4 acronyms in this thread; the most compressed thread commented on today has 7 acronyms.
[Thread #960 for this sub, first seen 9th Sep 2024, 11:55] [FAQ] [Full list] [Contact] [Source code]
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!