Plus, the internal and external services are running on the same box. Is that where my real problem lies?
It’s one of them, yes.
If you want to limit exposure in the case of a compromise you need to put everything public facing in it’s own vlan that cannot initiate traffic into your lan.
noobface@lemmy.world 9 months ago
Are you running redundant routers, connections, ISPs…etc? Compromise is part of the design process. If you have resiliency requirements redundancy will help, but it ratchets up complexity and cost.
Security has the same kinds of compromises. I prefer to build security from the network up, leveraging tools like VLANs to start building the moat. Realistically, your reverse proxy is likely battle tested if it’s configured correctly and updated. It’ll probably be the most secure component in your stack. If that’s configured correctly and gets popped, half the Internet is already a wasteland.
If you’re running containers, yeah technically there are escape vectors, but again your attacker would need to pop the proxy software. It’d probably be way easier to go after the apps themselves.
Do something like this with NICs on each subnet:
DMZ VLAN <-> Proxy <-> Services VLAN
tofubl@discuss.tchncs.de 9 months ago
Right, I could have been more precise. I’m talking about security risk, not resilience or uptime.
That is a fair point.
So, one port-forward to the proxy, and the proxy reaching into both VLANs as required, is what you’re saying. Thanks for the help!
markstos@lemmy.world 9 months ago
It depends on the trade-offs you want to make. If you want to maintain one less Nginx install with a little more risk, that’s a way to go.
If your priority is security, use a separate proxy for your private services and do allow your public VLAN access into your private VLAN.
My home network only has public services on it right now, but now you are making me think I should segment it further if I want to host any truly private services there.
tofubl@discuss.tchncs.de 9 months ago
The answer seems to always be “not segmented enough”. ;)