this post was submitted on 20 Aug 2024
66 points (100.0% liked)

Selfhosted

45585 readers
900 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
 

Basically every local service is accessed via a web interface, and every interface wants a username and password. Assuming none of these services are exposed to the internet, how much effort do you put into security here?
Personally, I didn't really think about it when I started. I make a half-assed effort at security where I don't use "admin" or anything obvious as the username, and I use a decent-but-not-industrial password - but I started reusing the u/p as the number of services I'm running grew. I have my browsers remember the u/ps.
Should one go farther than this? And if so, what's the threat model? Is there an easier way?

top 50 comments
sorted by: hot top controversial new old
[–] eager_eagle@lemmy.world 93 points 7 months ago (2 children)

random credentials + password manager

[–] douglasg14b@lemmy.world 10 points 7 months ago
[–] BartyDeCanter@lemmy.sdf.org 10 points 7 months ago

Exactly, the same way I handle all my credentials.

[–] pHr34kY@lemmy.world 61 points 7 months ago* (last edited 7 months ago) (2 children)

Public-facing: Password generator, stored in a password manager.

Internal LAN: Everything gets the same re-used, low-effort password.

Nobody is going to hack my CUPS server.

[–] BCsven@lemmy.ca 10 points 7 months ago (11 children)

But if they do, they have every password for all your stuff. hopefutlly you have Ipv6 disabled

[–] pHr34kY@lemmy.world 19 points 7 months ago (5 children)

IPv6 should not be disabled under any circumstances.

In fact, many devices in my house have IPv4 disabled. Disabling IPv4 on my public-facing SSH reduced the attack traffic to zero.

IPv4 is shit.

[–] BearOfaTime@lemm.ee 18 points 7 months ago* (last edited 7 months ago) (2 children)

IP4 is shit

Lol, right, right. It's only run the internet for what, 40 years now?

Guess you missed the recent gaping hole in IP6 on Windows?

IP6 is only really useful in large (i.e. enterprise) environments . It offers no practical benefit to small networks at the moment.

And even enterprise will only switch as they build out new infrastructure. The cost to switch is very high, and the risk is far more concerning than any potential benefit.

[–] 2xsaiko@discuss.tchncs.de 17 points 7 months ago

It offers no practical benefit to small networks at the moment.

The internet is not a “small network”, and I assume your small network is connected to it. You need local IPv6 routing to have access to IPv6-only hosts which are becoming more and more because it’s reasonable in terms of price to get an IPv6 block unlike IPv4 blocks which are being auctioned for tens of thousands of dollars at this point (!!!!).

Also restoring global addressing is a huge benefit. P2P communications in IPv4 has become an insane mess of workarounds due to lack of addresses and this becomes worse the more layers of NAT you stick behind each other to try to save your ass from the rising tide.

I’m really sick of hearing these idiotic excuses over and over, “it’s hard” this, “it’s unsafe” that, “it’s expensive”, “understanding the eldritch secrets of IPv6 has driven 5 of my colleagues into madness” skill issue. THERE ARE NO MORE IPV4 ADDRESSES. So unless your network is so fucked that you haven’t managed to fix it in 26 years, since IPv6 has been standardized, or it really is just an internal network with no outward facing services where it doesn’t matter when someone who just has IPv6 can’t access it because they wouldn’t be able to access it anyway, and you’re not some kind of ISP, you have no reason not to have support for it at this point and you absolutely never have a reason to tell people it’s not “useful” because that is straight up wrong in the general case even if it might be true for your situation.

[–] towerful@programming.dev 11 points 7 months ago (4 children)

How many people are running public facing windows servers in their homelab/self-hosted environment?

And just because "it's worked so far" isn't a great reason to ignore new technology.
IPv6 is useful for public facing services. You don't need a single proxy that covers all your http/s services.
It's also significantly better for P2P applications, as you no longer need to rely on NAT traversal bodges or insecure uPTP type protocols.

If you are unlucky enough to be on IPv4 CGNAT but have IPv6 available, then you are no longer sharing reputation with everyone else on the same public IPv4 address. Also, IPv6 means you can get public access instead of having to rely on some RPoVPN solution.

load more comments (4 replies)
[–] SchmidtGenetics@lemmy.world 12 points 7 months ago (2 children)

IPv6 was just found to have a critical exploit, and the solution is to disable it.

[–] powerofm@lemmy.ca 27 points 7 months ago (2 children)

I'm pretty sure that vulnerability only affected windows machines. Surely you're not running a homelab with windows server?

[–] SchmidtGenetics@lemmy.world 4 points 7 months ago

Wouldn’t any windows device in your network be vulnerable? And from there everything else.

[–] seaQueue@lemmy.world 5 points 7 months ago (3 children)

The only windows machine on my home network is the backup Windows laptop that I only boot when I need to run something like Odin to flash a tablet or some niche Nintendo switch management software.

load more comments (3 replies)
load more comments (3 replies)
[–] cmnybo@discuss.tchncs.de 13 points 7 months ago (1 children)

Just because each device has a globally routable IP address doesn't mean they can be accessed from outside your LAN. You still have to add a firewall rule to open a port to the device.

[–] BCsven@lemmy.ca 4 points 7 months ago* (last edited 7 months ago) (4 children)

I was referring to the latest CVE for ipv6 where an attacker just sends a flood of IPv6 packets which puts things like WindowsOS into a mode for remote code execution, even via webpage. Windows remedy right now is turnoff all ipv6 capability, as they don't have a fix yet

[–] insufferableninja@lemdro.id 7 points 7 months ago (1 children)

do self hosters use Windows? i would have thought most people were running Linux

load more comments (1 replies)
load more comments (2 replies)
load more comments (9 replies)
[–] VitabytesDev@feddit.nl 5 points 7 months ago

Yes, basically on internal LAN I put admin admin to everything.

[–] Drathro@dormi.zone 26 points 7 months ago (3 children)
[–] tofuwabohu@slrpnk.net 11 points 7 months ago (1 children)

Wait, how do you know my password?

[–] Arghblarg@lemmy.ca 5 points 7 months ago

I put on my robe and wizard hat

[–] slazer2au@lemmy.world 9 points 7 months ago

Correct horse battery staple

Need to pad those passwords.

[–] morethanevil@lemmy.fedifriends.social 24 points 7 months ago (2 children)
[–] sunzu2@thebrainbin.org 7 points 7 months ago

Feds@fbi.gov

Jan6wasaninsidejob

[–] WhyJiffie@sh.itjust.works 24 points 7 months ago

Everything gets a different, long random password. It's not a hassle because my password manager handles everything. It's bitwarden for whatever I may need to access elsewhere, few admin logins there, keepass everything else.

[–] jjlinux@lemmy.ml 16 points 7 months ago* (last edited 7 months ago)

All my local services follow the same rules as any other service. I have no idea what the passwords are, they are all random and long as fuck in my password manager. 2FA with a hardware key where allowed, TOTP if not.

What possible reason would anyone have to "relax" or security on local services? That would mean having 2 streamlines which only adds friction.

I strongly suggest you move all your credentials out of your browsers and into a password manager.

[–] catloaf@lemm.ee 13 points 7 months ago
[–] arcayne@lemmy.today 11 points 7 months ago* (last edited 7 months ago)

Apps: SSO via Authentik where I can, unique user/pass combo via Bitwarden where I can't (or, more realistically, don't want to).

General infra: Unique RSA keys, sometimes Ed25519

Core infra: Yubikey

This is overkill for most, but I'm a systems engineer with a homelab, so it works well for me.

If you're wanting to practice good security hygiene, the bare minimum would be using unique cred pairs (or at least unique passwords) per app/service, auto-filled via a proper password manager with a browser extension (like KeePassXC or Bitwarden).

Edit: On the network side, if your goal is to just do some basic internal self-hosting, there's nothing wrong with keeping your topo mostly flat (with the exception of a separate VLAN for IoT, if applicable). Outside of that, making good use of firewalls will help you keep things pretty tight. The networking rabbit hole is a deep one, not always worth the dive unless you're truly wanting to learn for the sake of a cert/job/etc.

[–] fmstrat@lemmy.nowsci.com 9 points 7 months ago

Unify them.

Now I have a full FOSS Active Directory for SSO logging into computers and services that supports 2FA where desired.

[–] RegalPotoo@lemmy.world 7 points 7 months ago* (last edited 7 months ago)

Keycloak to provide OIDC, although in hindsight I should have gone with ~~Authelia~~ Authentik

[–] cheddar@programming.dev 7 points 7 months ago* (last edited 7 months ago)

Since I'm already using Bitwarden, generating and storing passwords is easy. I use my name as the username, though that user doesn't have admin privileges.

[–] CarbonatedPastaSauce@lemmy.world 6 points 7 months ago

Same way I do at work. Different accounts and passwords for each service internally. Any service exposed to the net (game and email servers mostly) is on a segregated network and each machine has unique credentials to help prevent lateral movement. Self hosted Bitwarden tracks it all.

I do it for the same reason I require outbound firewall rules for almost everything on my home network - I’m a masochist.

[–] TCB13@lemmy.world 6 points 7 months ago (10 children)

I’ve been looking into some kind of simple SSO to handle this. I’m tired of entering passwords (even if it’s all done by the password manager) a single authentication point with a single user would be great.

Keycloak and friend are way too complex. Ideally I would like to have something in my nginx reverse proxies that would handle authentication at that level and tell the final app what user is logged on in some safe way.

load more comments (10 replies)
[–] Sunny@slrpnk.net 5 points 7 months ago* (last edited 7 months ago)

Personally keep it very simple using same username and password for my services. But I also don't host anything of value, just messing around with a few different projects I come across. Yes it's not good practice, but nothing is exposed works well for me.

[–] corroded@lemmy.world 5 points 7 months ago (3 children)

Like several people here, I've also been interested in setting up an SSO solution for my home network, but I'm struggling to understand how it would actually work.

Lets say I set up an LDAP server. I log into my PC, and now my PC "knows" my identity from the LDAP server. Then I navigate to the web UI for one of my network switches. How does SSO work in this case? The way I see it, there are two possible solutions.

  • The switch has some built-in authentication mechanism that can authenticate with the LDAP server or something like Keycloak. I don't see how this would work as it relies upon every single device on the network supporting a particular authentication mechanism.
  • I log into and authenticate with an HTTP forwarding server that then supplies the username/password to the switch. This seems clunky but could be reasonably secure as long as the username/password is sufficiently complex.

I generally understand how SSO works within a curated ecosystem like a Windows-based corporate network that uses primarily Microsoft software for everything. I have various Linux systems, Windows, a bunch of random software that needs authentication, and probably 10 different brands of networking equipment. What's the solution here?

load more comments (3 replies)
[–] GrumpyBike1020@monero.town 3 points 7 months ago (1 children)

My goal is to have all my services being a reverse proxy, even on LAN, and use passwordless authentication via passkeys/webauthn. I haven’t yet tried it but have been eyeing this: https://github.com/stonith404/pocket-id?ref=selfh.st

load more comments (1 replies)
load more comments