In my home network, I’m currently hosting a public facing service and a number of private services (on their own subdomain resolved on my local DNS), all behind a reverse proxy acting as a “bouncer” that serves the public service on a subdomain on a port forward.

I am in the process of moving the network behind a hardware firewall and separating the network out and would like to move the reverse proxy into its own VLAN (DMZ). My initial plan was to host reverse proxy + authentication service in a VM in the DMZ, with firewall allow rules only port 80 to the services on my LAN and everything else blocked.

On closer look, this now seems like a single point of failure that could expose private services if something goes wrong with the reverse proxy. Alternatively, I could have a reverse proxy in the DMZ only for the public service and another reverse proxy on the LAN for internal services.

What is everyone doing in this situation? What are best practices? Thanks a bunch, as always!

  • markstos@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    8 months ago

    The comment above is accurate how domain names can be passed to Nginx that would resolve to private IP addresses. But that doesn’t mean they need to exposed. Nginx has a listen directive that specifies what IPs are listened on. So If your Reserve Proxy has both a public IP and private IP. then the private services can have a a listen directive like this:

    server {
      # Whatever your proxy's private IP is
      listen 10.0.0.1;
      server_name my-private-service;
    }
    

    No matter what hostname is passed in, Nginx would only reply to requests that can reach the Nginx host at it’s private IP address.

    • tofublOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 months ago

      This is a good hint, I’m going to take a look at that. Thank you!