ubuntuusers.de

Ubuntu User können sich nciht am Ubuntu samba AD-DC anmelden

Status: Ungelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

soultracer

Anmeldungsdatum:
28. Februar 2022

Beiträge: Zähle...

Hello, wir haben auf einen Ubuntu Server 20.04 einen AD-DC aufgesetzt. Wir haben Ubuntu Deskop, auch 20.04 installiert. Nun ist es so, wenn sich ein User über den Client am DC anmelden will, dann wird zwar der Benutzer erkannt, wie man nachher in den logs sieht, aber das Passwort wird nicht legitimiert. Wir wissen nicht woran das Problem liegt. Denn lustigerweise können sich manche Domain-User ab und zu anmelden. Irgendwie funktioniert auch ein roaming homedirectory nicht wirklich. Vielleicht könnte irgendwer mit einer genauen und fundierten Antwort helfen, Danke.

Im Anhang habe ich eine Textdatei gepostet, nach welchem Schema der DC, ein Fileserver und der ubuntu client installiert wurde.

AD-DC-_AKT.txt (5.1 KiB)
Download AD-DC-_AKT.txt

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

Hallo,

git das ein reines Ubuntu-Setup oder nutzt Ihr auch noch Windows-Rechner?

Ich bin erst mal nur beim DC:

  1. Ihr konfiguriert IPv6 für Netplan, deaktiviert es aber dann vollständig. Warum dann die Konfiguration in Netplan? Bestimmt nicht der Show-Stopper in Eurem Fall, aber nur mal so.

  2. Ich sehe keinen Hinweis darauf, dass ihr in /etc/systemd/resolved.conf einen Eintrag für Domain=pinkit.loc getätigt hättet.

  3. Ich gehe davon aus ihr habt mit SAMBA_INTERNAL als DNS-Server provisioniert?

  4. Nach der Provisionierung darf in der /etc/systemd/resolved.conf nur der DC als DNS-Server stehen.

  5. Ich lese "v. Firewall" und eine Regel für ntp in ufw, ich lese aber im weiteren Verlauf nichts über Regeln für die ganzen Samba AD DC Dienste. Firewall würde ich auch erst mal deaktivieren, bis alles rund läuft.

  6. Ich lese, dass Ihr samba-ad-dc.service demaskiert und aktiviert. Ich lese nicht, dass Ihr smbd, nmbd und winbind deaktiviert und maskiert.

  7. Ihr habt keine Reverse-Lookup-Zone eingerichtet.

  8. Zeitserver-Konfiguration mache ich genauso wie im Samba-Wiki.

Was gibt systemctl status samba-ad-dc.service aus?

Tests die man am DC aber auch von Fileserver und Clients aus noch machen kann, auch mit den betroffenen Nutzer-Accounts:

Kerberos:

kinit administrator
klist
smbclient -L dc01 -k 

LDAP (ldbsearch ist im Paket ldb-tools):

ldbsearch -H ldap://dc01 "cn=administrator" -Uadministrator

Fileserver:

Dateisystemrechte wurden wie gesetzt? Im AD gelten Windows-POSIX-ACLs siehe https://wiki.samba.org/index.php/Setting_up_a_Share_Using_Windows_ACLs

LG, Newubunti

soultracer

(Themenstarter)

Anmeldungsdatum:
28. Februar 2022

Beiträge: 2

Ihr konfiguriert IPv6 für Netplan, deaktiviert es aber dann vollständig. Warum dann die Konfiguration in Netplan? Bestimmt nicht der Show-Stopper in Eurem Fall, aber nur mal so.

ipv6 ist nicht wichtig. Du beziehst dich auf das Beispiel am Anfang. Der Eintrag steht aber so nicht im AD-DC drinnen, weil es nur für mich zum copy pasten dort ist. Da aber ipv6 wie krätze ist, habe ich es zusätzlich deaktiviert.😉

Ich sehe keinen Hinweis darauf, dass ihr in /etc/systemd/resolved.conf einen Eintrag für Domain=pinkit.loc getätigt hättet.

Ist auch nicht notwendig. Das war mal vielleicht bei früheren versionen notwendig. Jetzt steht in den hosts; 1. Zeile die Loopback-ip und localhost und in der 2. Zeile IP hostname.example.loc hostname Ebenfalls wurde in der systemd/resolve/resolv.conf die entsprechenden Einträge gemacht und auf die /etc/resolv.conf gelinkt. Alle DNS Tests passen.

Ich gehe davon aus ihr habt mit SAMBA_INTERNAL als DNS-Server provisioniert? Nach der Provisionierung darf in der /etc/systemd/resolved.conf nur der DC als DNS-Server stehen

Natürlich ist das auch so

Ich lese "v. Firewall" und eine Regel für ntp in ufw, ich lese aber im weiteren Verlauf nichts über Regeln für die ganzen Samba AD DC Dienste. Firewall würde ich auch erst mal deaktivieren, bis alles rund läuft.

Du liest nichts darüber, weil ich die Firewall gar nicht aktiviert habe. Ich kenne die ufw-Regeln und hab mir hier nur die für ntp dazugeschrieben. Es ist nämlich so, manchmal reicht Linux der Dienstname und manchmal will es aber explizit den Port.

Ich lese, dass Ihr samba-ad-dc.service demaskiert und aktiviert. Ich lese nicht, dass Ihr smbd, nmbd und winbind deaktiviert und maskiert.

Nun, weil es eigentlich nicht notwendig ist. Aber wir haben auch das schon gemacht.

Ihr habt keine Reverse-Lookup-Zone

Doch, wurde eingerichtet. RSAT auf Windows funktioniert ja. Ein Windowsclient ist im AD drinnen.

Zeitserver-Konfiguration mache ich genauso wie im Samba-Wiki.

Kann man so machen, muss man seit 20.04 nicht mehr, da der Zeitserver implementiert ist und er ist über timedatectl zu steuern.

Die Sache ist die, Der AD-DC ist nicht unser Problem, samba wurde entwickelt, um mit Windows ADs zu kommunizieren und je nach Beschreibung, die du liest, ist diese meist schon veraltet.Weil mit einer Ubuntu Version 14,16,18 und davor musst du alles anders machen als seit 20 und in 21 funktioniert schon wieder vieles anders. Der hauptaugenmerk lag aber immer auf einer Verbindung mit Windows, aber es wurde dabei vernachlässigt, dieses System auch praktisch für eine reine Linuxinstallation zu adaptieren, daher wird da schon seit Jahren bis heute daran herumgepfuscht. Nun gibt es auch verschiedene Ansätze, joinen mit sssd oder winbind. Wobei sssd anscheinend eher dafür gedacht ist, mit einem Linuxclient eine Windows-AD zu joinen.

Heute ist mir auf jeden Fall gelungen den Ubuntu-Samba-AD-DC zu joinen, allerdings mit dem reinen winbind Ansatz. Aber ich danke dir, dass du dir einen Kopf darum gemacht hast. Das ist das Coole an Foren.

Wenn du einen Client mit sssd installierst, dann gibt es scheinbar Probleme mit kerberos. Weil manchmal ließ ein Client anmelden und manchmal nicht. Die AD hat ja auch die DomainUser bei der Anmeldung erkannt, es wurde nur bei der Passworteingabe die Legitimierung verweigert. Und auch da haben wir am DC schon in allen 10 Varianten die Möglich sind, die Passwörter vergeben.

Es müsste mal jemand von den Säcken bei Samba ein sauberes Tutorial für die neuen Versionen schreiben, nämlich so wie es funktioniert. Und weniger Hirnwixxereien über die Dinge, die nicht funktionieren, dazuschreiben. Aber wie man auch in ihrem Youtubekanal sieht, sind diese Leute nicht sehr praktisch orientiert und bauen lieber um Fehler herum, anstatt jene, die schon seit Jahren bestehen, zu beseitigen. Und sie reden einfach gerne. ☺

So wie in diesem Link beschrieben funktioniert das joinen, wir haben nur statt "compat winbind" "files winbind" gesetzt. https://wiki.ubuntuusers.de/Samba_Winbind/

Nichtsdestotrotz, danke nochmal.

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

Also bei mir funktioniert bezüglich des Joinens und der Nutzeranmeldung die Anleitung aus dem Samba-Wiki:

https://wiki.samba.org/index.php/Joining_a_Linux_or_Unix_Host_to_a_Domain

Sicher keine perfekte Anleitung, aber funktioniert. Was die lokale Anmeldung von Domänen-Nutzern am Linux-Rechner anbelangt da kommt halt pam ins Spiel und das ist eben komplex. Da kann ich schon verstehen, dass die Anleitung da allgemein bleibt:

https://wiki.samba.org/index.php/Authenticating_Domain_Users_Using_PAM

Ich finde die vorhandene Anleitungen im Samba-Wiki alles in allem ok; ich komme darauf als Grundlage immer wieder gerne zurück. Total in die Irre führen die eigentlich nie - ganz im Gegenteil zu Anleitungen von irgendwelchen Dritten.

Das sich bei Samba im Bezug auf AD-Server ständig etwas ändert, die müssen halt den Windows-Versionen hinterher programmieren.

Ich empfehle da auch immer die Release-Notes zu lesen, die sind nämlich IMO recht informativ - insbesondere die x.0er. Daraus ergeben sich dann zumindest mal häufig Schlagworte, mit deren Hilfe eine Internet-Suche bezüglich eines neuen oder auch nicht neuen Problems schneller ans Ziel führt.

Ganz ehrlich, die Samba-Leute haben meinen großen Respekt dafür, dass sie so ein komplexes Gebilde wie ein Windows-AD-Server in Linux "nachprogrammieren".

LG, Newubunti

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

Aufgrund eines anderen Anlasses habe ich das nun ein mal nachstellen können:

  • AD-Server basierend auf Ubuntu Server 20.04.4 nach HowTo eingerichtet.

  • Ubuntu Desktop 20.04.4 installiert und dabei beim Setup zum AD hinzugefügt, wie hier beschrieben.

Das führt zu folgender Situation:

  • Der Client ist zum AD hinzugefügt worden

  • Benutzer können sich aber z.B. über sudo login nicht anmelden. Dort wird ein Systemfehler angezeigt.

    ubuntu@focalvm01:~$ sudo login
    focalvm01 Login: test01@heim.lan
    Passwort: 
    
    Systemfehler

Das Ubuntu-Setup hat auf dem Ubuntu-Desktop folgende /etc/sssd/sssd.conf erzeugt:

[sssd]
domains = heim.lan
config_file_version = 2
services = nss, pam

[domain/heim.lan]
default_shell = /bin/bash
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = HEIM.LAN
realmd_tags = manages-system joined-with-adcli 
id_provider = ad
ldap_sasl_authid = focalvm01$
fallback_homedir = /home/%u@%d
ad_domain = heim.lan
use_fully_qualified_names = True
ldap_id_mapping = True
access_provider = ad

Dieser fügt man debug_level = 7 hinzu:

Also:

[sssd]
domains = heim.lan
config_file_version = 2
services = nss, pam

[domain/heim.lan]
debug_level = 7
default_shell = /bin/bash
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = HEIM.LAN
realmd_tags = manages-system joined-with-adcli 
id_provider = ad
ldap_sasl_authid = focalvm01$
fallback_homedir = /home/%u@%d
ad_domain = heim.lan
use_fully_qualified_names = True
ldap_id_mapping = True
access_provider = ad

Anschließend führt man folgende Befehle aus (sssd-tools müssen installiert sein):

sudo sss_cache -UG
sudo systemctl restart sssd 

Nun macht man noch mal einen Anmeldeversuch, der wiederum scheitert. Nun lässt man sich die Log-Datei /var/log/sssd/sssd_heim.lan.log anzeigen und filtert nach ad_gpo

sudo cat /var/log/sssd/sssd_heim.lan.log | grep ad_gpo

(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_get_options] (0x0400): Option ad_gpo_access_control has value enforcing
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_get_options] (0x0400): Option ad_gpo_implicit_deny is FALSE
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_get_options] (0x0400): Option ad_gpo_ignore_unreadable is FALSE
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_get_options] (0x0400): Option ad_gpo_cache_timeout has value 5
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_get_options] (0x0400): Option ad_gpo_map_interactive has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_get_options] (0x0400): Option ad_gpo_map_remote_interactive has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_get_options] (0x0400): Option ad_gpo_map_network has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_get_options] (0x0400): Option ad_gpo_map_batch has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_get_options] (0x0400): Option ad_gpo_map_service has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_get_options] (0x0400): Option ad_gpo_map_permit has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_get_options] (0x0400): Option ad_gpo_map_deny has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_get_options] (0x0400): Option ad_gpo_default_right has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_copy_options_ex] (0x0400): Option ad_gpo_access_control has value enforcing
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_copy_options_ex] (0x0400): Option ad_gpo_implicit_deny is FALSE
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_copy_options_ex] (0x0400): Option ad_gpo_ignore_unreadable is FALSE
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_copy_options_ex] (0x0400): Option ad_gpo_cache_timeout has value 5
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_copy_options_ex] (0x0400): Option ad_gpo_map_interactive has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_copy_options_ex] (0x0400): Option ad_gpo_map_remote_interactive has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_copy_options_ex] (0x0400): Option ad_gpo_map_network has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_copy_options_ex] (0x0400): Option ad_gpo_map_batch has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_copy_options_ex] (0x0400): Option ad_gpo_map_service has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_copy_options_ex] (0x0400): Option ad_gpo_map_permit has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_copy_options_ex] (0x0400): Option ad_gpo_map_deny has no value 
(Thu Mar 31 16:55:24 2022) [be[heim.lan]] [dp_copy_options_ex] (0x0400): Option ad_gpo_default_right has no value 
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_access_send] (0x0400): service login maps to Interactive
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_connect_done] (0x0400): sam_account_name is focalvm01$
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_site_name_retrieval_done] (0x0400): Using AD site 'cn=Default-First-Site-Name'.
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_site_dn_retrieval_done] (0x0400): som_list[0]->som_dn is DC=heim,DC=lan
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_site_dn_retrieval_done] (0x0400): som_list[1]->som_dn is cn=Default-First-Site-Name,cn=Sites,CN=Configuration,DC=heim,DC=lan
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_populate_gplink_list] (0x0400): som_dn: DC=heim,DC=lan
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_get_som_attrs_done] (0x0040): no attrs found for SOM; try next SOM
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_populate_candidate_gpos] (0x0400): candidate_gpos[0]->gpo_dn: CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=heim,DC=lan
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_filter_gpos_by_dacl] (0x0400): examining dacl candidate_gpo_guid:{31B2F340-016D-11D2-945F-00C04FB984F9}
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_filter_gpos_by_dacl] (0x0400): GPO applicable to target per security filtering
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_process_gpo_done] (0x0400): dacl_filtered_gpos[0]->gpo_guid is {31B2F340-016D-11D2-945F-00C04FB984F9}
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_process_gpo_done] (0x0400): cse_filtered_gpos[0]->gpo_guid is {31B2F340-016D-11D2-945F-00C04FB984F9}
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_process_gpo_done] (0x0400): num_cse_filtered_gpos: 1
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_cse_step] (0x0400): cse filtered_gpos[0]->gpo_guid is {31B2F340-016D-11D2-945F-00C04FB984F9}
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_cse_step] (0x0400): smb_server: smb://adc01.heim.lan
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_cse_step] (0x0400): smb_share: /sysvol
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_cse_step] (0x0400): smb_path: /heim.lan/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_cse_step] (0x0400): gpo_guid: {31B2F340-016D-11D2-945F-00C04FB984F9}
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_cse_step] (0x0400): retrieving GPO from cache [{31B2F340-016D-11D2-945F-00C04FB984F9}]
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_cse_step] (0x0400): ENOENT
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_cse_step] (0x0400): send_to_child: 1
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_cse_step] (0x0400): cached_gpt_version: -1
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [gpo_cse_done] (0x0020): ad_gpo_parse_gpo_child_response failed: [22][Das Argument ist ungültig]
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_cse_done] (0x0400): gpo_guid: {31B2F340-016D-11D2-945F-00C04FB984F9}
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_cse_done] (0x0040): Unable to retrieve policy data: [22](Das Argument ist ungültig}
(Thu Mar 31 16:55:44 2022) [be[heim.lan]] [ad_gpo_access_done] (0x0040): GPO-based access control failed.

Es scheitert also an der GPO-basierten Zugangsberechtigungsüberprüfung.

Nun fügt man der /etc/sssd/sssd.conf ad_gpo_access_control = permissive hinzu:

[sssd]
domains = heim.lan
config_file_version = 2
services = nss, pam

[domain/heim.lan]
debug_level = 7
default_shell = /bin/bash
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = HEIM.LAN
realmd_tags = manages-system joined-with-adcli 
id_provider = ad
ldap_sasl_authid = focalvm01$
fallback_homedir = /home/%u@%d
ad_domain = heim.lan
use_fully_qualified_names = True
ldap_id_mapping = True
access_provider = ad
ad_gpo_access_control = permissive

Anschließend wiederum:

sudo sss_cache -UG
sudo systemctl restart sssd 

Nun kann man den Login erneut versuchen:

ubuntu@focalvm01:~$ sudo login
focalvm01 Login: test01@heim.lan
Passwort: 
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.13.0-39-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

0 Aktualisierungen können sofort angewendet werden.

Your Hardware Enablement Stack (HWE) is supported until April 2025.
Letzte Anmeldung: Donnerstag, 31. März 2022, 16:35:25 CEST auf pts/1
test01@heim.lan@focalvm01:~$ 

Das Log verzeichnet nun am Ende:

...
(Thu Mar 31 17:08:45 2022) [be[heim.lan]] [ad_gpo_access_done] (0x0040): GPO-based access control failed.
(Thu Mar 31 17:08:45 2022) [be[heim.lan]] [ad_gpo_access_done] (0x0040): Ignoring error: [22](Das Argument ist ungültig); GPO-based access control failed, but GPO is not in enforcing mode.

Diese Situation ist über mehrere Installationen hinweg reprodzuierbar gewesen und besteht in gleicher Weise für die Kombination aus Jammy-Server und Jammy-Desktop.

Siehe zu dem ganzen Themen-Komplex AD-GPO based access control auch man sssd-ad.

Vielleicht hilft das Euch ja auch weiter.

LG, Newubunti

EDIT:

Ich habe dazu die folgenden Bug-Meldungen und den wohl passen Pull-Request gefunden:

Bug auf Launchpad: https://bugs.launchpad.net/ubuntu/+source/sssd/+bug/1934997/comments/5

bzw. https://bugzilla.redhat.com/show_bug.cgi?id=1839805

Pull-Request: https://github.com/SSSD/sssd/pull/6051

Antworten |