peterjoss
Goto Top

Active Directory unter Debian

Hallo zusammen,
ich bin gerade dabei zu Testzwecken ein kleines AD mit Debian aufzubauen, um dies später in unserem kleinen Firmennetz so umzusetzen.
Mein Kenntnisstand diesbezüglich ist allerdings noch sehr gering.

Dafür habe ich Proxmox auf einem test-PC installiert, und will jetzt 3 VMs einrichten:
1. active directory controller
2. fileserver
3. ad member

Hierbei will ich erstmal zu dem Punkt kommen, dass es auf dem fileserver freigegebene Verzeichnisse gibt, auf die mit AD-Benutzern zugegriffen werden kann.

Um das AD einzurichten bin ich folgendem Beispiel gefolgt:
www.considerednormal.com/2022/11/samba-based-active-directory-on-ubuntu-22-04/

Das scheint so weit alles auch zu gehen.
nslookup mit namen der jeweils anderen ad member funktioniert.
Ich konnte fileserver und ad member via "realm join" dem AD hinzufügen.
login mit ad user auf fileserver sowie ad member funktioniert auch.

Jetzt fehlt praktisch "nur" noch die Freigabe auf dem fileserver für domain user, aber hier hapert es noch.

Eine einfache Freigabe mit Gastzugang funktioniert.

smb.conf:
[global]
workgroup = ISBTEST
realm = ISBTEST.LAN
security = ADS
encrypt passwords = yes
password server = *
idmap config * : backend = tdb
idmap config * : range = 3000-7999
template shell = /bin/bash

[homes]
comment = Home Directories
browsable = no
read only = no
create mode = 0750

[public]
path = /share/test
writable = yes
comment = smb share
printable = no
guest ok = yes

Dies kann ich auf dem anderen ad member system mounten mit
sudo mount -t cifs -o guest //filesrv-test3/public /mnt/test

Nun habe ich die smb.conf folgendermaßen geändert:
[public]
path = /share/test
writable = yes
comment = smb share
printable = no
guest ok = no
valid users = @"ISBTEST\Domain Users"  

und versuche die freigabe zu mounten mit
sudo mount -t cifs -o rw,user=aduser-test@isbtest.lan //filesrv-test3/public /mnt/test
das funktioniert aber nicht, und dmesg zeigt folgendes:
[ 1177.616970] CIFS: Attempting to mount \\filesrv-test3\public
[ 1177.620205] CIFS: Status code returned 0xc000005e STATUS_NO_LOGON_SERVERS
[ 1177.620220] CIFS: VFS: \\filesrv-test3 Send error in SessSetup = -5
[ 1177.621738] CIFS: VFS: cifs_mount failed w/return code = -5
[ 1178.273041] CIFS: VFS: reconnect tcon failed rc = -13

Das klingt für mich wie ein ganz grundsätzlicher Fehler, und ich hänge hier gerade etwas in der Luft wo nun mein Problem liegt.
Zudem herrscht bei mir immer noch Verwirrung was den Zusammenhang von Samba, Winbind, SSSD und Kerberos angeht,
und in welcher Konstellation wo entsprechende configs angepasst werden müssen.

Ich würde mich freuen wenn mich da jemand in eine vernünftige Richtung weisen kann.

Content-ID: 12795184059

Url: https://administrator.de/contentid/12795184059

Ausgedruckt am: 22.11.2024 um 00:11 Uhr

erikro
erikro 12.08.2024 um 14:18:25 Uhr
Goto Top
Kraemer
Kraemer 12.08.2024 um 14:37:41 Uhr
Goto Top
[ 1177.620205] CIFS: Status code returned 0xc000005e STATUS_NO_LOGON_SERVERS

das klingt für mich nach einem DNS-Problem. Ist bei dem Client der Domaincontroller als einziger DNS-Server hinterlegt?
peterjoss
peterjoss 12.08.2024 um 15:28:36 Uhr
Goto Top
Hi,
am client habe ich die resolv.conf folgendermaßen bearbeitet:
domain isbtest.lan
search isbtest.lan
nameserver 10.0.0.230
nameserver 9.9.9.9
nameserver 8.8.8.8

den domaincontroller habe ich auch in /etc/hosts eingetragen:
127.0.0.1       localhost
127.0.1.1       adclient-test3.isbtest.lan      adclient-test3
10.0.0.230      dc-test3.isbtest.lan    dc-test3

sowie auch in /etc/network/interfaces:
auto ens18
iface ens18 inet static
        address 10.0.0.240
        netmask 255.255.255.0
        gateway 10.0.0.1
        dns-nameservers 10.0.0.230 8.8.8.8 8.8.4.4

ping + nslookup funktionieren auch mit dem dc hostnamen
erikro
erikro 12.08.2024 um 16:26:33 Uhr
Goto Top
Zitat von @peterjoss:
am client habe ich die resolv.conf folgendermaßen bearbeitet:
domain isbtest.lan
search isbtest.lan
nameserver 10.0.0.230
nameserver 9.9.9.9 #FALSCH!
nameserver 8.8.8.8 #FALSCH!

den domaincontroller habe ich auch in /etc/hosts eingetragen:
127.0.0.1       localhost
127.0.1.1       adclient-test3.isbtest.lan      adclient-test3
10.0.0.230      dc-test3.isbtest.lan    dc-test3

sowie auch in /etc/network/interfaces:
auto ens18
iface ens18 inet static
        address 10.0.0.240
        netmask 255.255.255.0
        gateway 10.0.0.1
        dns-nameservers 10.0.0.230 8.8.8.8 8.8.4.4 #FALSCH!

Niemals, aber auch wirklich niemals tragen wir DNS-Server ein, die nicht zur eigenen Domain gehören. Das AD steht und fällt mit der DNS-Konfiguration. Die fremden Server kennen Deine Domain nicht und können darüber also keine Auskunft geben. Wenn nun ein Client warum auch immer die "alternativen" Server nimmt, dann läuft das gegen die Wand.
peterjoss
peterjoss 12.08.2024 um 16:41:50 Uhr
Goto Top
Ok danke, wieder was gelernt.
Ich werde das morgen mal anpassen und nochmal schauen.
aqui
aqui 12.08.2024 um 18:21:33 Uhr
Goto Top
Niemals aber auch wirklich niemals…
Und auch Google DNS verwenden heute nichtmal mehr Dummies!! face-sad
c0d3.r3d
c0d3.r3d 13.08.2024 um 00:55:05 Uhr
Goto Top
Zitat von @aqui:
Und auch Google DNS verwenden heute nichtmal mehr Dummies!! face-sad


Rein aus Interesse, ich verwende auch keinen Google DNS, aber was sind so "Standard" DNS-Server, neben Cloudflare/Quad9?
Looser27
Looser27 13.08.2024 um 08:36:59 Uhr
Goto Top
Rein aus Interesse, ich verwende auch keinen Google DNS, aber was sind so "Standard" DNS-Server, neben Cloudflare/Quad9?

Grundsätzlich würde ich den Provider-DNS-Server verwenden.
Als "Filter" dazwischen einen piHole oder ADGuard Server um Werbung und unerwünschtes zu blockieren.
peterjoss
peterjoss 13.08.2024 um 11:42:23 Uhr
Goto Top
Hab jetzt mal alles außer den domain controller als dns aus den cofigs entfernt,
das Problem besteht nach wie vor.
Zugriff als Gast wenn Gastzugang erlaubt ist funktioniert, aber sobald ich die smb.conf des fileservers ändere:
guest ok = no
valid users = @"ISBTEST\Domain Users"  
bekomme ich beim Zugriff vom client aus wieder "STATUS_NO_LOGON_SERVERS".

Habe jetzt mal die computer accounts auf dem DC entfernt und einmal mit realm leave/join neu hinzugefügt,
wodurch ich immerhin so weit kam dass ich ein "permission denied" beim zugriff bekam,
was vermutlich noch ein anderes Problem in meiner config ist.
Werde jetzt aber trotzdem erstmal eine neue vm für flieserver und client erstellen, um das Ganze nochmal auf einer sauberen Basis aufzubauen...
erikro
erikro 13.08.2024 um 11:44:39 Uhr
Goto Top
Zitat von @peterjoss:

Hab jetzt mal alles außer den domain controller als dns aus den cofigs entfernt,

Das ist gut.

das Problem besteht nach wie vor.

Die Anleitung, die ich Dir geschickt habe, hast Du durchgearbeitet?
aqui
aqui 13.08.2024 um 14:22:05 Uhr
Goto Top
aber was sind so "Standard" DNS-Server
Keine US DNS Server…
https://www.privacy-handbuch.de/handbuch_93d.htm
peterjoss
peterjoss 13.08.2024 um 15:27:27 Uhr
Goto Top
Ich hatte mich bisher an diese Anletung zur Erstellung einer einfachen Freigabe gehalten:
www.thomas-krenn.com/de/wikiDE/index.php?title=Einfache_Samba_Freigabe_unter_Debian
und wollte diese dann auf AD umstellen.

Ich hab dabei sinngemäß (denke ich) auch alles getan was in deinem Link steht, also:
- samba und realmd installieren
- hostname setzen
- zeitserver konfigurieren
- dns einträge hinzufügen (namensauflösung von fileserv von client aus geht)
- samba freigabe konfigurieren (mount als gast auf client geht)
- samba auf AD umstellen (hier gab es dann probleme)

Jetzt hab ich mal versucht den fileserver neu aufzusetzen und genau der Anleitung zu folgen, allerdings bekomme ich beim join folgendes:
isfile@filesrv-test4:~$ sudo realm join -v --membership-software=samba --client-software=winbind isbtest.lan
 * Resolving: _ldap._tcp.isbtest.lan
 * Performing LDAP DSE lookup on: 10.0.0.230
 * Successfully discovered: isbtest.lan
Passwort für Administrator:
 * Unconditionally checking packages
 * Resolving required packages
 ! PackageKit not available: The name org.freedesktop.PackageKit was not provided by any .service files
 ! Necessary packages are not installed: libnss-winbind winbind libpam-winbind samba-common-bin
realm: Dem Bereich konnte nicht beigetreten werden: Necessary packages are not installed: libnss-winbind winbind libpam-winbind samba-common-bin

Habe die packages dann via apt installiert, bekomme aber trotzdem die selbe Meldung wenn ich es nochmal versuche *?*
netbla
Lösung netbla 19.08.2024 um 23:16:33 Uhr
Goto Top
Hallo,
wenn du Samba als zuverlässiges AD einsetzten willst möchte ich dir dringend das Buch zu Samba 4 von Stefan Kania ans Herz legen. Die Investition lohnt sich, da er detailliert beschreibt wie du das AD aufzusetzen hast.

Es gibt halt ein paar Fallstricke, wie z.B. das verwendete Kerberos, über die man leicht fällt.

Ich betreibe seit über 5 Jahren ein AD in der Form mit Fileservern, mehreren DCs und gemischten Clients für ein kleines KMU und das ganze läuft sehr stabil.

Was mir beim drüber lesen aufgefallen ist:

- du machst den Join über "realm join", ich hab das immer über "net ads join" gemacht. Wichtig ist das die krb5.conf auf allen Membern identisch ist und das gleiche Kerberos läuft. Kann sein das samba mittlerweile mit dem MIT-Kerberos arbeiten kann, früher ging hier nur der Heimdal-Kerberos.

- Prüfe mal ob die Nutzerauflösung auf dem Fileserver überhaupt funktioniert. Das sollte mit wbinfo -u bzw -g gehen, sofern du winbind für die Nutzerauflösung nimmst. Alternativ sollte auf jeden Fall getent passwd klappen, wenn du z.B. SSSD nimmst und alles richtig konfiguriert ist. Beachte hier auch die nötigen Einstellungen im name service switch des Fileservers.

- Anbei eine Beispielkonfig eines Fileservers:

[global]
	client ipc signing = required
	client max protocol = SMB3
	client min protocol = SMB2
	realm = EXAMPLE.INTRA
	registry shares = Yes
	security = ADS
	template shell = /bin/bash
	winbind enum groups = Yes
	winbind enum users = Yes
	winbind refresh tickets = Yes
	winbind use default domain = Yes
	workgroup = example
	idmap config * : range = 10000 - 19999
	idmap config example : backend = rid
	idmap config example : range = 100000 - 1999999
	idmap config * : backend = tdb
	inherit acls = Yes
	vfs objects = acl_xattr

[Users]
	browseable = No
	comment = privates Nutzerverzeichnis
	create mask = 0700
	directory mask = 0700
	path = /home/AD
	read only = No

[mitarbeiter]
	comment = Allgemeine Netzwerkfreigabe
	force create mode = 0777
	force directory mode = 0777
	path = /srv/mitarbeiter
	read only = No

Vielleicht hilft dir das etwas weiter.

Alles gute und viele Grüße
netbla
peterjoss
Lösung peterjoss 20.08.2024 um 12:59:14 Uhr
Goto Top
Danke für die Tipps!
Tatsächlich hatte ich mein Problem gerade gelöst indem ich winbind statt sssd auf dem fileserver verwendet habe.
Dazu hab ich einfach die selben packages wie in dem oben genannten Tutorial auf dem DC verwendet wurden installiert, und dann die smb.conf entsprechend für winbind angepasst, sowie auch die krb5.conf auf allen systemen gleichgezogen (ähnlich wie in deinem Beispiel).
Danach ging es dann, hatte also vermutlich irgend ein Problem bei der config mit sssd.