Hi all,

I am running proxmox on a mini PC with a handful of services in my stack. I also run NPM in an LXC to reach my services through my domain name (service.domain.tld).

For my Arr related stuff, I use Usenet, and everything runs through a VPN.

I have three services which are public. Jellyfin, Seer and BookOrbit (for syncing Kobos).

Currently I have no security besides the built in login managers from the services, but I am considering setting up Authentik. I know I’m asking for trouble with my current set up.

I have elderly and extremely tech averse family members who live in two countries other than me, so tech support can be a challenge.

A lot of people suggest running a VPN, but it would be difficult for my family and I don’t know how to make it work syncing our Kobos with BookOrbit.

I’ve also seen some posts about tunneling to a VPS somewhere and users can connect to the VPS without a VPN.

I feel this question has been asked several times, and I tried searching here and on the internet in general, but my knowledge is not good enough to use the right terms and to get something that is idiot proof.

Any suggestions on best practices or links to guides you recommend would be much appreciated. Also, what EU based affordable VPS would you recommend?

  • fonix232@fedia.io
    link
    fedilink
    arrow-up
    5
    ·
    7 hours ago

    Authentik (and other auth systems) are super heavy for single/low-user systems. They’re geared for more MSO use than SOHO. For auth, I’d really recommend something lighter, like Pocket-ID (as long as you don’t mind passkeys instead of passwords - Seerr and BookOrbit support WebAuthn so you can use it directly, and Jellyfin supports it with an extension for the web interface + you can set password for a Jellyfin account for clients that need direct auth). For any service that doesn’t support it, Pocket-ID has an auth gateway/wrapper you can use with your reverse proxy (I use Caddy, config is fairly straightforward).

    For security, I’d recommend some automated IDP systems. You could run Suricata on your router (if it can host heavier apps), which is what Ubiquiti uses. It can talk to your firewall and set up rules on the fly to block intrusions, specific users etc.

    Beyond that I’d also recommend crowdsec. One half is the detection (you hook it up as part of your reverse proxy, so it can inspect packets and full flows), and the other is the actioning (you hook it up with your router/gateway/firewall to apply blocking rules). Big benefit is that their open database (the free to access one) has all the 0-day fingerprints and CVE-specific behaviour is detected and blocked.

    Here’s a quick preview of what it’s been doing today on my setup:

    altr

    Since most indirect attackers (people randomly probing your homelab instead of directly targeting you and your services) will come from various data centers (routed through a VPS or directly relying on the infrastructure), a 4h block is generally enough to not interrupt other services while blocking attackers from probing once they hit a limit.

    And of course you also need proper container network setups. For example, every single container I can, I run in rootless, read-only mode. This means the container itself can’t be edited - only a handful of paths (left as volume mount points) are RW: the config folder, media folders only if the container needs write access to them, and caches. Each path is mounted noexec so even if a backdoor is found into the container, the attacker can’t do much as they can’t execute anything they’d deliver as payload (can’t write to paths that are executable, can’t execute from writeable paths), and since the container is rootless, there aren’t many tools to run: no ash/bash/zsh/fish, no interactive shell at all, no operating system beyond a barebones Linux kernel and the bare minimum tooling needed for the specific software.

    Docker networking is also hardened, with routing strictly limited, and containers only seeing other containers they need access to.

    I’d also recommend using LLMs to expand on your security. No I’m not talking about giving Claude access to your entire network and homelab… But you can ask for general hardening guidance, and most frontier models will gladly walk through your stack using basic reporting (you run a command on the homelab nodes, it returns a report, you give that report to the model), and give recommendations on making it more secure.