Hi all, I’m running a small website off of a raspberry pi in my house. I have opened ports 80 and 443 and connected my IP to a domain. I’m pretty confident in my security for my raspberry pi (no password ssh, fail2ban, nginx. Shoutout networkchuck.). However, I am wondering if by exposing my ports to the raspberry pi, I am also exposing those same ports to other devices in my home network, for example, my PC. I’m just a bit unsure if port forwarding to an internal IP would also expose other internal IP’s or if it only goes to the pi. If you are able to answer or have any other comments about my setup, I would appreciate your comment. Thanks!

  • ChrislyBear@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 years ago

    I did this for some time. But now I don’t want any ports open at home.

    That’s why I have a rented VPS that runs Traefik (a reverse proxy). This VPS has a VPN connection to my home net and is behind Cloudflare DNS. This is how I can safely expose services (even in my home net) to the Internet without forwarding any ports.

    Of course those services need to have some kind of authentication.

    • constantokra@lemmy.one
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 years ago

      I’ve been considering doing the same thing, but i’m not sure there’s much actual benefit over feeling like there’s more separation, because if someone accesses the vps, they get direct access into your server at home. What’s your opinion?

    • Contravariant@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      2 years ago

      If you’ve set up a VPN to your home net then why not run that VPN from the devices you use to access the reverse proxy? With wireguard at least this is quite easy.

      That way you don’t have to expose anything you just run a VPN with the reverse proxy in it.

      • ChrislyBear@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        2 years ago

        My setup is

        Internet <—> Reverse Proxy (on VPS) <—> OpenVPN Server (on VPS) <—> VPN Client (home router) <—> local stuff…

        I don’t understand what you mean? Generally I don’t like to require a VPN to access stuff. My use case is, when I’m away I’d like to be able to access things from e.g. a public device, a friends laptop, etc. That’s why I’m not using a VPN to access things.

        The VPN site-to-site connection is mainly responsible to make network shares available on my Nextcloud instance and provide access to other (local) services via the reverse proxy

        Currently I’m rethinking the VPN, but I don’t think I can ditch it in favor if e.g. Cloudflare Access tunnels (too unflexible, limited compatibility, or too much hassle to keep everything configured correctly).

        Also, I don’t use VPN to authorize requests. I use Authelia to authorize users with Free-IPA as directory in the backend.

        I know, this might be overkill for my “simple” use cases, but I like to play around with these kind of enterprise-adjacent solutions.

        • Contravariant@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 years ago

          I suppose it depends on what you want to do. I’m currently only hosting stuff for my own purposes so it is fine if I can just access it from devices I trust.

          My setup is more like

          Wireguard (on Phone/Laptop/etc) <–> Wireguard (on RaspberryPi) <–> Reverse Proxy (on RaspberryPi) <–> local stuff (mostly in docker on RaspberryPi)

          The advantage is that the only service accessible from outside is Wireguard, so even if some service running behind the reverse proxy is insecure I’m still the only one with access.

          Obviously one of the disadvantages is that I can’t access it (easily) from some random device, but I can access it from my phone and in an emergency I do have keys that I can use to install wireguard somewhere else, but I would require admin rights to some device to do so.