this post was submitted on 06 Feb 2024
182 points (99.5% liked)

Selfhosted

40727 readers
633 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

As the title says, I want to know the most paranoid security measures you've implemented in your homelab. I can think of SDN solutions with firewalls covering every interface, ACLs, locked-down/hardened OSes etc but not much beyond that. I'm wondering how deep this paranoia can go (and maybe even go down my own route too!).

Thanks!

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 7 points 10 months ago (2 children)

Notifications on system file access

Notifications on root login/sudo

Declarative OS, tmpfs root, disabled sudo

Bastion server, but right now I don't have a proper router to do it at home

Yubikey, or a separate phone on Graphene OS for otp, keys, etc

Authelia + fascist fail2ban (or some CSF)

Most of these are pretty normal, but usually you don't do them all at once πŸ˜„ also, I don't really like hiding my services from the open internet, authelia is fine tuned to let people only access what they are supposed to. And regular users of my server usually don't notice that I even have it

[–] [email protected] 2 points 10 months ago* (last edited 10 months ago) (1 children)

I'd love to hear more about your Authelia setup. I'm using Authentik, but planning to do the same thing. I haven't opened my server up to the Internet yet (just built it on Friday), but what I'd like to do is have a webserver that supplies a login page, and you can't access anything else until you've logged in

[–] [email protected] 2 points 10 months ago (1 children)

I'm a Nixos user, I wouldn't be much help unless you do Nixos. But it's a whole new rabbit hole which would take you months/years to learn and setup πŸ˜…

What I can say, you can do "access from home network", "access from VPN network", "1fa/2fa from the internet" OR "access for / and /api, but 1fa/2fa for stuff like /admin, /admin-settings, or just /login or /logged-in"

Fail2ban is fun, also maybe have a look at crowdsec

[–] [email protected] 1 points 10 months ago (1 children)

Ah, yeah, I'm running Proxmox. And I'm definitely seeing I have a lot of research to do before I open up to the internet!

[–] [email protected] 1 points 10 months ago

I'm actually not from the "close everything, don't open ports, always sit behind cloudflare" camp

We selfhost so we can use and share our services

There are other things we can practice instead of just isolationism and keeping everything as simple as possible

[–] [email protected] 0 points 10 months ago (1 children)

Declarative OS, tmpfs root, disabled sudo

How do you change anything about the OS/do updates? iirc nixos requires elevated privileges for that?

[–] [email protected] 1 points 10 months ago* (last edited 10 months ago)

There are many ways to do many things in nixos

For updates you can do automatic updates

Also, there are many deployment tools, like deploy-rs, morph, colmena, bento. They all have different approaches. Some you use ssh to deploy a remote system. Some just fetch the configuration and autodeploy it.

There are many ways how you can play with this. So you can disable sudo, and deploy with ssh only from some or a specified ip. Or you can keep ssh for root disabled and just deploy home-manager. It's really a lot, you imagination is the only limit

P.s. or you can just generate an image from a trusted machine, and flash it onto the device you want, unlimited number of ways