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?
random credentials + password manager
Exactly, the same way I handle all my credentials.
Never not
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.
Don’t remember the tool, maybe someone here does, but there’s some web service out there that boasts a “no storage” approach. You provide some URI and some other value (maybe username) and it makes a password for you, but it’s always the same for a given combination. Basically it’s a purely functional generator.
Downside would be forgetting a minor detail (Did it end with a slash or not? What was the username?) or the site going down. You can achieve the same thing yourself with a hash calculator but those passwords are a bitch to type in.
tl;dr just use KeePass
hunter2
All I see is ******
Correct horse battery staple
Need to pad those passwords.
Wait, how do you know my password?
I put on my robe and wizard hat
deleted by creator
What self-hosted services did you set up passkeys on? How did setting it up go?
Maybe ldap? I might do that for my setup.
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?
Your confusion is confusing me lol
I don’t see how this would work as it relies upon every single device on the network supporting a particular authentication mechanism.
Wdym? That’s not a thing, you can have some devices on LDAP some with local logins and some with OIDC or any other combination. Authentication is generally an application layer thing and switches operate at layer 2 maybe 3 if it’s doing some routing. As long as your network has a functioning DHCP server the web UI of the switch will be able to communicate with the LDAP server that you configure it to
I think I’m misunderstanding how LDAP works. It’s probably obvious, but I’ve never used it.
If my switch is expecting a username and password for login, how does it go from expecting a web login to “the LDAP server recognizes this person, and they have permissions to access network devices, so I’ll let them in.”?
Also, to be clear, I’m referring to the process of logging in and configuring the switch itself, not L2 switching or L3 routing.
If the switch supports it, you login with local credentials first, navigate to its config page and configure LDAP under there. You’ll tell it the IP address of the LDAP server as well as give it its client side configuration. You give it a bind account credentials (a dedicated service account with as minimal permissions as needed) that it uses to lookup the users on the server as well as Organization Unit paths and such
When a user goes to login the switch will query the provided credentials against the LDAP server, if it’s valid the LDAP server will respond with a success and the switch will log the user in
Generally there is always a local account fallback in the event that the LDAP server is unavailable for whatever reason
I use anzo and as password an empty string. It’s never been guessed :p
Nice try FBI 😏😁
Not today, CIA!
Jan6wasaninsidejob
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.
Never tried Authelia or Authentik but I’ve heard good things about them. I’m sure one of them will integrate with a reverse proxy.
Those solutions are still way too complex and corporate to my likes. :(
I’d like to encourage you to take another look at Authentik, it sounds like their Proxy Provider is exactly what you’re looking for: https://docs.goauthentik.io/docs/providers/proxy/
Authentik can certainly get complex, but only if you want/need it to. It is by far the most user-friendly IDP solution I’ve found, especially for what it offers. Their docs also have step-by-step guides for how to integrate a lot of popular self-hosted apps.
Only takes a couple mins to spin up a test environment using their Docker compose file: https://docs.goauthentik.io/docs/installation/docker-compose
Thanks, I’ll have another look.
For sure! If you do end up taking it for a spin, feel free to ping me with any questions.
Too much pieces that can potentially break. I’ve been looking at http://nginx.org/en/docs/http/ngx_http_auth_request_module.html and there’s this https://github.com/kendokan/phpAuthRequest that is way more self contained and simple to maintain long term. The only issue I’m facing with that solution is that I’m yet capable of passing a token / username in a header to the final application.
Is there a passkey setup that’s easy to self host? I think passkeys with a backup would be best.
Hmm this is actually interesting, passkeys would indeed make things simpler.
I’ve been looking at https://github.com/stonith404/pocket-id?ref=selfh.st
any oauth (I use kanidm) and oauth2-proxy solves that and now you can easily use passkeys to log into your intranet resources.
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.
Unify them.
- I use a container that runs an AD in Samba4: https://nowsci.com/samba-domain
- LDAP from that is used for services like Nexcloud, etc.
- I then run Keycloak to add OIDC to the AD: https://www.keycloak.org/
- This is for other services like Outline that only support Oauth/OIDC
- And lastly, I use Oauth2-proxy to support everything else by adding OIDC to my nginx proxy: https://oauth2-proxy.github.io/oauth2-proxy/
- This supports systems like SearNGX with no native login that I want to limit to my users.
Now I have a full FOSS Active Directory for SSO logging into computers and services that supports 2FA where desired.
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.
I have a local instance of Vaultwarden that I use to generate and store the credentials for my local services, and I use normal cloud-hosted Bitwarden for all my other passwords.
Currently I have terrible local password rules.
Once I get my Vaultwarden reinstalled, everything will use properly managed passwords, with 2FA for things like servers/services/admin accounts (routers, DNS, etc).