this post was submitted on 13 Feb 2024
70 points (91.7% liked)

Selfhosted

39893 readers
358 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 1 year ago
MODERATORS
 

I'm curious as to why someone would need to do that short of having a bunch of users and a small office at home. Or maybe managing the family's computers is easier that way?

I was considering a domain controller (biased towards linux since most servers/VMs are linux) but right now, for the homelab, it just seems like a shiny new toy to play with rather than something that can make life easier/more secure. There's also the problem of HA and being locked out of your computer if the DC is down.

Tell me why you're running it and the setup you've got that makes having a DC worth it.

Thanks!

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

I do, for a multitude of reasons

  • Easier management of family computers
  • an authoritative source for Authentik SSO
  • Learning experience, I'm also heavy Linux, but I try to maintain an OS agnostic philosophy with my skill set so I can have options in my career
  • I was bored
  • Again, since I like to maintain an OS agnostic philosophy I have a healthy mix of Windows, Linux and MacOS devices, and you CAN in fact join Linux (w/ SSSD) and MacOS to a domain too

In addition to what others have said with roaming profiles and such:

DO NOT SET YOUR AD DOMAIN AS THE SAME DOMAIN OF A WEB ADDRESS YOU USE

I..er...someone... Found themselves in this situation and have been in a mess since lmao

[–] [email protected] 11 points 8 months ago

Some of the best and worst decisions people have made started with, "I was bored." Ha!

[–] [email protected] 5 points 8 months ago (3 children)

Can you explain your disclaimer? You suggest not setting your AD domain to a web address you use, like one for self hosted sites? So you buy 2 domains, one for AD and one for sites? Or you use an internal domain for AD?

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

AD is heavily reliant on the DNS protocol, so heavily in fact that a large component of an AD deployment is a DNS server.

So basically, when the AD DNS server takes over on your network It'll do DNS things as you'd expect, when it gets a DNS call with the AD domain it will answer with the AD server every time

If your AD domain and your web address domain are domain.com then whenever the AD DNS server gets theh call it won't answer with the IP address of the web server, it'll answer with the AD server, even when you are trying to access a web service like domain.com/Plex or something.

You can change the DNS server used on the host, but then you'll be borkin domain functionality in weird ways

Yea, you'd want an entirely different domain or an internal like domain.lan or in my case what I should have done is made it a subdomain like ad.domain.com

And also it's a bitch to change the AD domain once you get it all setup hence I've been procrastinating with hosts file workarounds lmfao

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

made it a subdomain

That is the correct answer.

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

If I remember correctly that is best practise, no? It was something.local or *.intern for years, until TLDs could be whatever you wanted them to be.

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

Do not use made up domains for anything these days. It will make it a pain if you ever need a certificate for that domain that isn't self-signed.

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

.local is reserved for mDNS responses, don't use that.

It's more than best practice. Your active directory controllers want to be the resolvers for their members, separate from other zones such as external MX records or the like. Your AD domain should always be a separate zone, aka a subdomain. "ad.example.com".

If your DCs are controlling members at the top level, you'll eventually run into problems with Internet facing services and public NS records.

Also per below. You can't get commercially signed certificates for fake domains. Self hosting certificate authorities is a massive pain in the ass. Don't try unless you have a real need, like work-related learning.

[–] [email protected] 3 points 8 months ago

All the descriptions are right and techniques. Microsoft sometimes refers to this is split-brain and their documentation.

Organizations that choose not to do that use an active directory specific subdomain like some of the other comments mentioned. Example: adds. Company.tld.

Computer1.adds.company.tld. Dc1.adds.cimoany.tld.

Others doing split domain are

Adds.company.internal

[–] [email protected] 3 points 8 months ago* (last edited 8 months ago)

In shorter terms to what the other comment said, your website won't work in networks that use DNS served by your DC. The website is fine on the Internet, but less so at home or at an office/on a VPN if you're an enterprise.
"I can't go to example.com on the VPN!" was a semi common ticket at my last company 🙃

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

Is there costs associated with this?

[–] [email protected] 6 points 8 months ago (3 children)

To deploy AD, that depends.

If you like to sail the high seas AND aren't trying to use it for a business, then no.

If you don't want to sail the high seas or need to use it for a business, then yes, you'll need to buy a Windows Server license

[–] [email protected] 2 points 8 months ago

Windows server license and CALs... don't forget that extra little cost just because from MS

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

Samba v4 has been able to be a domain server forever and it's free. You can also use Synology if you want it off the shelf.

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

You can have ad dc on samba, without windows. Nice all in one solution is UCS univention, works really well and free: https://www.univention.com/products/ucs/

Even in docker, last time i tried this, it was buggy: https://github.com/Fmstrat/samba-domain

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

Thank you for the wonderful comment.

Indeed, I was hoping to have a good SSO setup alongside learning about AD and domain services (also looking at the *nix alternatives like FreeIPA).

Could you tell me more about the DNS setup with regards to AD? I'd like to use my own DNS and not have AD be the DNS provider in my network. The idea to put it in its own subdomain is excellent and I'll remember that.

People here also mention an increase in attack surface and security vulnerabilities in running AD/domain services on a network. Now, I agree that letting free access to the domain server and having rogue accounts causing havoc on the network is not great, but I'd like to know more. What has been your experience?

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

Not the original commenter, but I don't understand how that would increase your attack surface. The AD is inside the network, and if an attacker is already in, you're compromised. There might be way to refrence a DNS server with a windows server, but then you're running windows and your life is now much more difficult.

As per DNS, the AD server must be the DNS provider. If you run something like nethserver in a VM you can use it as a dns & ad server.

The domain thing, the AD server is the authorative for its domain. So if you set it as top level, like myhouse.c()m, it will refrence all dns requests to itself, and any subdomains will not appear. The reccomended way to get around this is to use a subdomain, like ad.myhouse.c()m. Or, maybe you have a domain name to burn and you just want to use that?

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

Thanks, you're the second person who spoke about Neth server to me. I'll take a look.

I was planning to create a subdomain for it anyway, it's just that I was misled that if I didn't give it control over DNS for the network it wouldn't function properly. That doesn't seem to be case (which I'm glad for).

I do not quite understand how the attack surface is increased other than running Windows on my network. I will have to look deeper into it myself.

Thanks

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

It may have been me both times. I went down a deep AD hole recently, and was trying to find an easy open source way to do it.

My advice is to put whatever you choose into a vm and snapshot it right before you configure the AD. I think I reconfigured mine 8 times before I was happy.

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