Hey everyone,

I’m one of the people who still used proton and am now in the process of switching everything and trying to selfhost more.

I sucessfully setup Vaultwarden. I also decided I should move away from having my dockers publicly exposed with nginx reverse proxy and switched everything over to netbird. Im using their proxy feature now to access everything with custom domains and followed a tutorial to setup a bring your own proxy server on a vps. So now all my services are only accessible when my netbird vpn is active. I also spun up a pihole docker and added that to my netbird dns servers to try and get ad blocking on my mobile devices. So far so good.

I wonder however that while some webui’s like vaultwarden run with https, others like radarr dont. Is this a problem or does it not matter so much since i have the vpn running?

I dont really understand how I would go about making them https though. Im on unraid for my dockers and don’t see why some use https and others don’t.

Sorry if this is a convoluted post, I’m quite in over my head with all the networking and dns stuff and just hoping I’m not doing something stupid.

Thanks for your help!

  • Supercrunchy@programming.dev
    link
    fedilink
    English
    arrow-up
    3
    ·
    8 hours ago

    So, HTTPS prevents people on the network from hijacking the connection or spying on what you do with the website or your passwords. If you have a VPN and no evil devices inside your network you are likely fine, and many things don’t need HTTPS-level of safety.

    That said, browsers make using HTTP almost unusable nowadays, because over the internet you really want your connection to not be hyjacked, and almost nobody self-hosts (sadly).

    I would reccommend to set up a reverse proxy to do https for all services you host, even if you only use it via lan/vpn. Adding a new service then becomes just hosting it over HTTP, and have your reverse proxy converting the connection to HTTPS.

    If you have a domain, you can request a wildcard cert from let’s encrypt and use that also for internal domains (they don’t need to be reachable from the public internet, but you might need to expose the ACME challenge file).

    If you want to learn a lot about certificates you can go the self-signed route, but you’ll have to install the certificate on every device you use to access your services (guests will get huge warnings when trying to access your pages, if you give them access to them). Once set up it’s more flexible though, and if you configure your dns server you can have whatever domain you want, even nonexistent or unavailable ones.

  • youmaynotknow@lemmy.zip
    link
    fedilink
    English
    arrow-up
    2
    ·
    8 hours ago

    Most (if not all) reverse proxies will allow you to add a certificate for your sites locally. I run everything over wireguard when I’m outside my network, and have NGINX Proxy Manager for all my routing and certificate needs. Works flawlessly so far.

  • Jason2357@lemmy.ca
    link
    fedilink
    English
    arrow-up
    2
    ·
    8 hours ago

    A reverse proxy like Caddy can get a ssl cert via dns challenge and add ssl to all your internal self hosted services, provided you have a domain hosted somewhere supported.

    • Urist@lemmy.ml
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 hours ago

      With everything behind tailscale, and hence no need for opening the firewall, my DNS challenge failed when I tried to set it up last time using certbot.

  • heyeddi@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 day ago

    If nothing’s exposed and it’s all behind Netbird, you don’t strictly need it. I still would, because apps like Vaultwarden’s web vault won’t load without a secure context. A wildcard cert via DNS challenge is a one-time setup. Everything else is optional.

  • SpatchyIsOnline@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    22 hours ago

    Even though it’s not strictly required if you’re only using your services over your local network or a VPN, your browser won’t know that’s what you’re doing. The security warnings got so incredibly annoying for me that I switched to using https on everything.

    There are also some specific web features that only work over https (including some optional upgrades needed for Nextcloud iirc)

  • CorrectAlias@piefed.blahaj.zone
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    1
    ·
    edit-2
    23 hours ago

    Yes, because an attacker already in your network will be able to view non SSL traffic.

    I even have my unRAID endpoints using https. You can do self signed, or you can use something like let’s encrypt to do it for you. I use wildcard certs as any signed certs with the full subdomain can expose what services I host internally (since signed certificate provisioning is, by design, a public process).

  • y0kai@anarchist.nexus
    link
    fedilink
    English
    arrow-up
    53
    ·
    2 days ago

    short answer (and the safest one) is yes, use HTTPS always.

    However, if and only if a service you are using is confined locally or via your privately hosted VPN (this just means not available over the public internet) you are probably OK without, unless there are other people on your local network who might be interested in snooping.

    with your VPN (looks like netbird in this case) you should be OK, as the VPN handles encryption in the absense of HTTPS.

    For more research checkout LetsEncrypt. its a super simple way to setup SSL (Which generally makes up the S part in HTTPS) and it’s free.

    i think many of us started like you. you’ll get there, you’re just about to learn a lot of stuff before you do.

    • Tekhne@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      28
      ·
      2 days ago

      I just want to point out that it’s not just other people who might be interested in snooping. Compromised smart home equipment is a big potential vector of attack if services are unencrypted on your home network.

      Relevant XKCD: https://xkcd.com/1966/

      • peregus@lemmy.world
        link
        fedilink
        English
        arrow-up
        6
        ·
        2 days ago

        And that’s why IMHO they all need to be segregated in a VLAN with limited/no Internet access.

      • dil@lemmy.zip
        link
        fedilink
        English
        arrow-up
        10
        ·
        2 days ago

        Websites exist just to look through exposed pc’s files and webcams, or used to at least

    • [object Object]@lemmy.ca
      link
      fedilink
      English
      arrow-up
      11
      ·
      2 days ago

      I suggest you should treat your own network as at least a little compromised.

      Most houses run something that has a residential proxy, browsers like Chrome are happy to snoop on your local network, and apps and smart devices are completely free to use your network as they see fit by default.

      Anything that has sensitive data should be handled via https.

      • y0kai@anarchist.nexus
        link
        fedilink
        English
        arrow-up
        5
        ·
        2 days ago

        agreed. this is part of the reason i have separate VLANs for my server, IoT network, Management network, guests, and home computers. I also consciously try not to use programs like Chrome and all my traffic goes through OPNSense/Unbound DNS.

        i realize not everyone has the equipment for / can do all of that though. And that despite all of that and more, I’m still compromised to anyone with dedication. or a fucking ai

    • alexsantee@infosec.pub
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 day ago

      Just to add, to avoid connecting via HTTP outside the VPN by accident, you can set the firewall/docker to accept connections into that port only through the VPN’s ip address

  • quaff@lemmy.ca
    link
    fedilink
    English
    arrow-up
    27
    arrow-down
    1
    ·
    edit-2
    2 days ago

    Always use HTTPS. Especially if you’re using your services on mobile.

    Imagine you’re on your friend’s WiFi, and you disconnect from your net bird/tailscale/wireguard connection to your self hosted network… Any and all mobile apps that require that secure connection, is going to attempt requests to your internal services and sending auth/session token details along the requests.

    A bad actor on your friend’s WiFi network, could, in theory, capture these requests and now you’re at the mercy of how well those services are written.

    This all may sound a bit paranoid, but it is what we are trying to mitigate here.

    • lemmyvore@feddit.nl
      link
      fedilink
      English
      arrow-up
      16
      ·
      2 days ago

      It’s not even that hard to imagine, this is exactly what rogue wifi access points do. It’s surprisingly common for wifi access at places like coffee shops to be compromised and used to silently conduct these types of attacks. The people that set them up are not very knowledgeable and also they don’t ever check up on them as long as they keep working.

      This is also why you want to enable HSTS on top of your HTTPS, so that rogue requests to downgrade the connection to plain HTTP are ignored.

      Another good idea is to place all the services that should only be accessed over VPN only in private DNS (home LAN DNS and the VPN’s DNS), never in public DNS. A simple and effective way of doing that is to place them on a deep subdomain like *.private.example.com rather than *.example.com. That way if your VPN drops when you try to resolve those subdomains you don’t get any response anymore and there’s no connection for the rogue wifi to hijack.

      • quaff@lemmy.ca
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        1 day ago

        Yep! Definitely don’t add any of your internal domains on public DNS services. Be careful requesting SSL certs for the child subdomains too. They will show up on transparency logs like on shodan.io. Use internal DNS, and wild card certs for these things. And obviously, do not expose your ports publically.

    • Policeshootout@lemmy.ca
      link
      fedilink
      English
      arrow-up
      4
      ·
      2 days ago

      I’m not sure I understand this. If I’m on my phone and connect using wire guard or teleport and I’m connected to a public wifi, I don’t understand the risks. Can you explain them? Thanks, I genuinely don’t understand. I thought encrypted tunnels were safe?

      • quaff@lemmy.ca
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 day ago

        Sometimes your connection might not work correctly, and you’re not connected to your secure network. Like how VPNs will have kill switches (prevents you from accessing the Internet if the connection to the VPN isn’t successful) to prevent leaks during those spotty connections. Without HTTPS, during those spotty connection times, you’re sending your auth/session details plain-text on an unsafe network.

  • SlicedPotato@feddit.dk
    link
    fedilink
    English
    arrow-up
    20
    ·
    2 days ago

    Yes, always use HTTPS, even on local networks if there ever are more than one device on the network.

    The way to handle services with/without HTTPS is to put everything behind a reverse proxy that automatically handles certificates. Since you’re using NGINX, you can try setup certbot, or switch to something like Caddy that has certificate handling built in. If you have all your Docker containers on one server, you can look at Traefik.

    • trojanbark@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 days ago

      Question: I have a remote VPS running Caddy, which sends requests through a WireGuard tunnel to my OPNsense router, which then forwards them on to my VMs running Nextcloud and Jellyfin. Is it possible to use the same certificate locally? Whenever I access the services locally, I have to use http because apparently generating a self-signed certificate locally conflicted with the Caddy-generated certbot certificate.

  • NoLemurs@lemmy.world
    link
    fedilink
    English
    arrow-up
    14
    ·
    2 days ago

    If you’re not using https, then anyone who can see the traffic in your VPN can see everything you do.

    Whether that’s a problem depends. In principle, as long as access to your VPN is restricted to people you trust, then http inside it is fine. In practice, if your security isn’t perfect, and someone gets access to your VPN, then https provides a meaningful second line of defense.

    My recommendation would be to never use http for anything where a breach would be really painful. It’s good that vaultwarden is on https. Beyond that, https is absolutely the best practice, but if someone getting access to your service is only a mild inconvenience, then leaving it on http is fine as long as it’s only accessible inside your VPN - the risk is relatively low, and the consequences aren’t bad.

      • Eldritch@piefed.world
        link
        fedilink
        English
        arrow-up
        6
        ·
        2 days ago

        Tail scale should act as a mediator basically initializing the connection between two remote sessions. Then stepping away, letting go two remote sessions handle everything else. If every customer’s traffic had to go through them as a central server, it would be a central bottleneck and a massive operating cost for them. This is why free Vpns are never worth it. You are always the product on them, and they are always heavily mining your data.

        • James R Kirk@startrek.website
          link
          fedilink
          English
          arrow-up
          2
          ·
          2 days ago

          I’m not sure that’s true to say it “steps away” because you can go to tailscale.com (on a machine that’s not connected to the tailnet) and log into the console and see all the machines and change their settings if you want, so clearly something is routing through their servers and actions taken on their servers are able to influence the machines.

          I’m not an expert here clearly, just going on my own observations.

          • Eldritch@piefed.world
            link
            fedilink
            English
            arrow-up
            5
            ·
            2 days ago

            Its possible the client on your PC could be profiling your traffic and reporting back. That would likely end up badly for the parent company. But things like that aren’t unheard of and part of the reason I’m building my own router again. (See the ongoing GN LG coverage) Those sort of devices can spy on, and report back about other traffic on the network. If your smart devices are connected via Ethernet then they can likely see and read everything on your network that is unencrypted.

            But a management console isn’t traffic snooping. Yes, you do have to trust the client to use it. They aren’t routing your traffic through them though. If they’re found to be spying it will be huge news turning them into a parriah in the IT and open source communities.

          • lemmyvore@feddit.nl
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 days ago

            The tailnet devices report their status to the central servers along with the version they run, the state of their connections to the rest of the tailnet and (unless you disable it) they also send in their logs. But the central server can’t see inside node-to-node connections.

      • NoLemurs@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        Tailscale is a sort of VPN. So, yeah, treat it the same.

        I’m mostly responding to add a little context to the security concerns. Probably the biggest inside-the-VPN concern is that someone on your VPN gets some malware. So, if this is your family network, and say, your kid’s phone or laptop gets some malware, now any non-encrypted traffic is potentially compromised. Basically, the VPN is only as secure as the weakest link. That’s the thing you’re protecting against with https for individual services.

        If I were hosting vaultwarden, and had my bank login in there, I absolutely wouldn’t consider a VPN + http sufficient protection. With LLMs, if we don’t have malware that knows how to hunt around for valuable credentials in the wild already, it’ll be here soon. I personally run my Jellyfin server over https because I’ve gone to the trouble to set up a good system to use letsencrypt with nginx as a proxy for any service. But I wouldn’t be too worried about running Jellyfin over http.

      • lemmyvore@feddit.nl
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 days ago

        What about Tailscale, can they see http traffic over my Tailscale connection?

        No, they can’t see anything inside node-to-node connections. They are encrypted end-to-end with keys that are only kept on each node and the node clients are open source so you can verify yourself that’s how it works.

        The Tailscale servers only help the nodes find each other and establish connections to each other, they don’t have any access to the connections themselves.

        The only way for Tailscale to intervene would be for them to silently add their own nodes to your tailnet but (1) even then the rogue node would only see connections between itself and other nodes, not connections between other nodes, and (2) at some point they added a setting that requires existing nodes to approve any new node, so you can use that to completely prevent it.

  • Shimitar@downonthestreet.eu
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    1
    ·
    2 days ago

    Yes you do.

    First of all, there are services that will refuse to work properly on http only. Specially if you want an SSO like authelia, will not work over http

    Second, modern browsers will complain when using plain http if the website has forms to fill or passwords to write … very annoying, but it’s the way it is.

    Third, having the “this site is not secure” broken lock is not very nice for users. At best they might complain, at worse they will get used to “unsecured” websites and .ight end up easier prey for fake sites in the future. Yes I mean wife or kids. These are things normal users should not see as normal…

    Last, if you expose anything to the web, please never ever do that without proper https with certificates from let’s encrypt.

      • moldy_rice@piefed.keyboardvagabond.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        10 hours ago

        Nope. Onion Service’s traffic is end to end encrypted.

        And it’s a pinned key that cannot be mistaken, because the .onion address is a derivative of the hash of the Key’s fingerprint.

        • BetterDev@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          ·
          5 hours ago

          Interesting. TIL!

          I was definitely under the impression that exit nodes were able to see all traffic unencrypted, but maybe that was from an earlier version of Tor. Now I’ve RTFM and by god you’re right!