GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Ubuntu – Sssd (sudo und Dyndns_update) mit Realmd konfigurieren?

Ich versuche, ein Ubuntu 16.04 mit realmd + sssd einer Windows-Domäne (Active Directory) beizutreten. Im Grunde bin ich diesem Beitrag gefolgt, der ziemlich gut funktioniert hat, und ich konnte meinem Server beitreten und mich erfolgreich als AD-Benutzer authentifizieren. Allerdings fehlen bei der Integration zwei Teile:

  1. Hostnamen des Servers im DNS registrieren
  2. Verwenden Sie sssd-sudo für die Benutzerautorisierung

Hostnamen des Servers im DNS registrieren

Wie bereits erwähnt, trete ich dem AD erfolgreich bei, indem ich
realm join --user=dpr MYDOMAIN.INT --install=/ verwende :

[email protected] ~ # realm list
mydomain.int
  type: kerberos
  realm-name: MYDOMAIN.INT
  domain-name: mydomain.int
  configured: kerberos-member
  server-software: active-directory
  client-software: sssd
  required-package: sssd-tools
  required-package: sssd
  required-package: libnss-sss
  required-package: libpam-sss
  required-package: adcli
  required-package: samba-common-bin
  login-formats: %[email protected]
  login-policy: allow-realm-logins

Trotz des erfolgreichen Beitritts ist mein Server jedoch den anderen Computern in der Domäne nicht bekannt, die seinen Hostnamen ip-172-28-5-174.mydomain.int verwenden . Ich habe diese Dokumentation gefunden, die ein dyndns_update erwähnt Einstellung in der Datei sssd.conf.

Da ich Realm verwende. Die sssd-Konfiguration wird automatisch generiert, indem der Join-Befehl ausgegeben wird. Die generierte Konfigurationsdatei sieht folgendermaßen aus:

[sssd]
domains = mydomain.int
config_file_version = 2
services = nss, pam

[domain/mydomain.int]
ad_domain = mydomain.int
krb5_realm = MYDOMAIN.INT
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%[email protected]%d
access_provider = ad

Das heißt, ich muss irgendwie dyndns_update = True hinzufügen zu dieser generierten Datei. Aber wie?

Verwenden Sie sssd-sudo für die Benutzerautorisierung

Zusätzlich möchte ich sssd dazu bringen, meine Sudo-Konfiguration aus AD zu lesen. Ich denke, dies kann mit sssd-sudo erreicht werden, aber dies muss auch in der sssd.conf-Datei aktiviert/konfiguriert werden, indem sudo hinzugefügt wird zu den sssd-Diensten und verwenden Sie sudo_provider = ldap für meine Domäne. Wieder bin ich nicht in der Lage, herauszufinden, wie ich das mit Realm machen soll.

Grundsätzlich möchte ich, dass meine generierte Konfigurationsdatei so aussieht:

[sssd]
domains = mydomain.int
config_file_version = 2
services = nss, pam, sudo

[domain/mydomain.int]
id_provider = ad
access_provider = ad
sudo_provider = ldap
ad_domain = mydomain.int
krb5_realm = MYDOMAIN.INT
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%[email protected]%d

Irgendwelche Ideen, wie dies erreicht werden kann?

Akzeptierte Antwort:

Wenn Active Directory sudoers verwalten soll müssen Sie ein spezielles Schema in AD laden und dann Ihre Regeln mit einem Tool wie ADSI Edit erstellen. Diese exemplarische Vorgehensweise hat bei mir unter Ubuntu 14.04 funktioniert. Die Highlights sind:

  • Importieren Sie schema.ActiveDirectory
  • Erstellen Sie Regeln gemäß der sudoers-ldap-Manpage
  • Aktualisiere etc/nsswitch.conf um sss einzuschließen unter den Einträgen auf den sudoers = Linie
  • Aktualisiere etc/sssd/sssd.conf einzuschließen:
    • sudo unter den Einträgen zu den services = Linie
    • ein leerer [sudo] Abschnitt (es sind keine Konfigurationen erforderlich, aber Redhat behauptet, dass dies die richtige Konfiguration der sudo-Unterstützung auslöst)
    • eine Zeile wie sudo_provider = ad (sssd-Dokumente auf pagure.org behaupten, dass der sudo-Anbieter standardmäßig für ldap, ad und ipa aktiviert ist, daher kann dies optional sein)

Wenn ich diesen Vorgang für 16.04 wiederhole (d. h. dieselben AD-Regeln wie 14.04), habe ich tatsächlich andere Probleme. Anscheinend ist dies keine Seltenheit. Es ist möglich, dass es einen Fehler in der Version von sudo gibt, die in 16.04 enthalten ist.

  • Im Prinzip sollte dieses Problem durch ein manuelles Upgrade auf die neueste Version behoben werden.
  • Das normale sudo Paket (nicht sudo-ldap ) ist das richtige Paket, wenn Sie SSSD wollen (und nicht sudo ), um die LDAP-Verbindung zu verwalten. Insbesondere die Installation von sudo-ldap erzeugt keine Protokolle in sssd_sudo.log während das reguläre sudo Paket hat.
  • Während sssd_sudo zeigt jetzt Returning 2 rules for [<user>@<domain>] , sudo -l antwortet immer noch mit Sorry, user <user>@<domain> may not run sudo on <host> nicht ausführen Daher müssen möglicherweise andere Probleme gelöst werden.
Verwandte Themen:Wie kann man anhand der Protokolle herausfinden, was das Herunterfahren des Systems verursacht hat?

Meine Situation ist jedoch möglicherweise nicht typisch, da ich zusätzliche Probleme habe, die nicht üblich zu sein scheinen. Zum Beispiel hatte ich Probleme beim Ausführen von realm join die mithilfe von Problemumgehungen aus dieser Serverfehlerfrage behoben wurden.

Wenn Sie aufgrund von realmd/sssd/sudo-Problemen in 16.04 hierher gefunden haben, finden Sie hier einige andere gemeldete Probleme, die hilfreich sein können (nicht unbedingt direkt mit dem Problem des OP zusammenhängen):

  • IPA-Host-Netzgruppenproblem (weitere Informationen in der free-ipa-Benutzerliste)
  • Es gibt ein bekanntes Problem mit der Realmd-Abhängigkeitsauflösung. Wie in der Diskussion erwähnt, löst die Installation von Packagekit für viele (einschließlich uns). Möglicherweise gibt es ein separates Problem mit der Version 16.04.

Wir evaluieren 16.04 für ein Upgrade, also können wir dies auf Eis legen, aber hoffentlich hilft unsere Kleinarbeit anderen.


Ubuntu
  1. So installieren und konfigurieren Sie Nginx unter Ubuntu 20.04

  2. Installieren Sie Nginx und konfigurieren Sie den virtuellen Host in Ubuntu 20.04

  3. Wie installiere und konfiguriere ich Varnish unter Ubuntu 20.04?

  4. Composer installieren und mit Xampp konfigurieren?

  5. So installieren und konfigurieren Sie LibreNMS unter Ubuntu 20.04

So installieren und konfigurieren Sie GitLab CE unter Ubuntu 18.04 LTS

So installieren und konfigurieren Sie DNS unter Ubuntu

So installieren und konfigurieren Sie Kubernetes unter Ubuntu

Log mit Graylog in Ubuntu 20.04 installieren und konfigurieren

So richten Sie die UFW-Firewall unter Ubuntu 20.04 ein und konfigurieren sie

So installieren und konfigurieren Sie Memcached unter Ubuntu