TLDR: VPN-newbie wants to learn how to set up and use VPN.

What I have:

Currently, many of my selfhosted services are publicly available via my domain name. I am aware that it is safer to keep things closed, and use VPN to access – but I don’t know how that works.

  • domain name mapped via Cloudflare > static WAN IP > ISP modem > Ubiquity USG3 gateway > Linux server and Raspberry Pi.
  • 80,443 fowarded to Nginx Proxy Manager; everything else closed.
  • Linux server running Docker and several containers: NPM, Portainer, Paperless, Gitea, Mattermost, Immich, etc.
  • Raspberry Pi running Pi-hole as DNS server for LAN clients.
  • Synology NAS as network storage.

What I want:

  • access services from WAN via Android phone.
  • access services from WAN via laptop.
  • maybe still keep some things public?
  • noob-friendly solution: needs to be easy to “grok” and easy to maintain when services change.
  • Lordjohn68@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 year ago

    I chose wireguard implemented by pivpn (i like pi’s)

    Wireguard app on phone and a quick duckduck will find you a script or app for your laptop. Connected to your home in seconds.

    • PlutoniumAcid@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 year ago

      PiVPN is elegant. Easy install, and I am impressed with the ascii QR code it generates.

      But I could not make it work. I am guessing that my Android setup is faulty, orrrr maybe something with the Pi? This is incredibly difficult to troubleshoot.

    • PlutoniumAcid@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      I used Zerotier before and I still use it now. It is also the solution I am now going to continue with.

      I wanted to try Wireguard to get away from a centrally managed solution, but if I can’t get it working after several hours, and Zerotier took five minutes - the winner is clear.

  • BearOfaTime@lemm.ee
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    edit-2
    1 year ago

    Tailscale can meet each of your bullet points.

    Don’t bother with VPN just use Tailscale, and install the client on your other devices (they have clients for every OS).

    This creates an encrypted virtual network between your devices. It can even enable access to hardware, like printers (or anything with an IP address) by enabling Subnet Routing.

    To provide access to specific resources for other people, you can use the Funnel feature, which provides an entrance into your Tailscale Network for the specified resources, fully encrypted, from anywhere. No Tailscale client required.

    And if you have friends who use Tailscale, using the Serve option, you can invite them to connect to your Tailscale network (again, for specified resources) from their Tailscale network.

  • teslasaur@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Personally I would have gone for OpenVPN access server on Debian. Fairly simple and well documented for those starting out.

    I have used and worked with OpenVPN connect on android, PC and Mac.

  • rambos@lemm.ee
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Not expert, but basically you should port forward wireguard port 51820 to your server, install wireguard server, create client(s) and load QR code (or config) on android/laptop and you are set. Pi hole DNS and everything else should work just like when you are on home wifi.

    You can leave your CF for public access, but do you really need PF 80 and 443 if you are using CF tunnels? (I thought you dont, but I never used CF. Feels like its more safe to hve CF tunnels if you dont need to PF, but you have a middle man you have to trust)

    • PlutoniumAcid@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Thank you for providing specific steps that I can take! I will look into this.

      No I do not use cloudflare tunnels, just regular cloudflare to publish my services to the whole world - which is a concern of course.

      Going with a connection from my device via wireguard sounds like just the right thing to do.

  • 1boiledpotato@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    You would want to setup a VPN server on your linux server and vpn clients on android and laptop. I’m not knowledgeable enough to help, but you can look into wireguard