Is a Traefik IP whitelist safe? - eviltoast

So I’m hosting a lot of Docker containers, a lot of which are behind a Traefik reverse proxy. Is it safe to use IPWhitelist middleware? I want to ensure that only the LAN can access the services while using HTTPS, because some services (like Radarr and Sonarr) have a password and I don’t want that information sent without encryption / SSL.

Could someone spoof their client IP address and bypass the Traefik IP whitelist?

  • immortaly007@feddit.nl
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Something to keep in mind here. I am also using an IP white-list, but only on some services Traefik hosts.

    So for example bitwarden is behind an IP white-list, but subsonic is reachable from any IP.

    I think in that case it’s not really possible (or doable) to write L2 firewall routes.

    But if you want all traffic to port 80 on your server to be IP whitelisted, then a regular firewall would be good.

    • vzq@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 year ago

      I can see how this would be a useful property in a pinch, but personally it would make me rather uncomfortable.

      First of all, IP white lists in general make less and less sense in a world of carrier grade NAT and mobile Internet. The position of a device or user on the network is fluid and not particularly meaningful. If you want to authenticate the user, authenticate the user.

      Second, while an IP white list at the http level is fishy, an IP white list at the http level that is conditional on information in an http header (the Host: field) is a huge screaming red flag. I can think of a dozen ways for everything to go sideways.

      Third, serving both internal and external traffic from the same httpd process/reverse proxy is a huge smell for your network architecture. The only hardware that gets to see both internal and external traffic should be your router, and it should have no business serving web applications.

      I’m sure you have your reasons for doing things this way, as does OP, but I really urge you to take a good look and evaluate whether it’s worth it.

      • immortaly007@feddit.nl
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        I agree for serious/business applications. In my case, it’s a home server that I and some close friends and family access. But it is indeed exposed (basically, my router routes port 80 and 443 to the server within the NAT).

        To discuss the header-based firewall: the host is used by Traefik to determine which docker container to route (reverse proxy) the traffic to. So I don’t see any obvious ways an attacker can really manipulate that to reach (in my case) the bitwarden instance. My main attack angle this protects if is there is some vulnerability in Bitwarden and bots are going around exploiting that. That way at least Traefik would already block them before they get to bitwarden.

        But yes another service with a vulnerability could be exploited, then escape that docker container and you’re in the whole server.