W jaki sposób administratorzy utrzymują konta użytkowników na setkach serwerów Linux?

37

Jak radzić sobie z setkami serwerów RHEL, w jaki sposób możemy utrzymywać lokalne konta root i sieciowe konta użytkowników? Czy istnieje rozwiązanie typu active directory, które zarządza nimi z centralnej lokalizacji?

Ronaldo Nascimento
źródło

Odpowiedzi:

36

Jednym z centralnych składników Active Directory jest LDAP, który jest dostępny w systemie Linux w postaci OpenLDAP i 389DS (i niektórych innych). Również inny główny składnik Kerberos jest dostępny w postaci MIT Kerberos i Heimdal . Wreszcie możesz nawet podłączyć swoje maszyny do AD.

Sven
źródło
2
Ze względu na kompletność należy również wspomnieć o agencie po stronie klienta, SSSD .
fuero
Co z kontem głównym?
Daniel Serodio
1
@DanielSerodio: To zależy od organizacji i sposobu, w jaki zajmują się dostępem do roota. W przypadku setek serwerów prawdopodobnie i tak użyłbym czegoś takiego jak Puppet i używałbym tego, albo do zarządzania hasłem jako takim, albo do sudoersreguł (lub obu).
Sven
26

Możesz wypróbować marionetkę do zarządzania użytkownikiem:

Dlaczego warto używać Puppet do zarządzania kontami użytkowników? (a nie NIS, LDAP itp.)

Jedną z korzyści zarządzania kontami użytkowników w marionetce jest fakt, że jest ona zdecentralizowana. Każde konto użytkownika jest zwykłym kontem użytkownika na zarządzanym serwerze. Nie ma nic specjalnego w kontach użytkowników, które tworzy marionetka, poza faktem, że zostały one utworzone przez marionetkę, a nie przez administratora. Zaletą tego jest to, że jeśli główny host umrze, nie stracimy uwierzytelnienia. Co oznacza, że ​​nasz serwer puppetmaster (lub serwer NIS / LDAP) nie musi mieć żadnych specjalnych wymagań dotyczących dostępności. Jeśli zdarzy się nagły wypadek, możemy skupić się na podniesieniu serwerów produkcyjnych i skupieniu się na tym, by lalekmaster był w miarę potrzeb. Wadą tego jest to, że marionetka niekoniecznie jest tak naprawdę zaprojektowana do zarządzania „normalnymi” kontami logowania (w przeciwieństwie do kont systemowych). Największym sposobem na to jest to, że chociaż możesz ustawić hasło w marionetce, marionetka stale monitoruje ustawienia systemowe (dobre) i jeśli zauważy, że hasło się zmieniło, zresetuje je. (złe) Nie chcę monitorować haseł użytkowników w naszej sieci, więc musi istnieć sposób na ustawienie hasła i powstrzymanie kukiełki od monitorowania tego hasła. Na szczęście, kiedy już wymyślisz sztuczkę, jest to naprawdę bardzo łatwe. Ale najpierw usuńmy niektóre definicje.

http://docs.puppetlabs.com/pe/2.5/console_auth.html

Suku
źródło
Jest to prawidłowe rozwiązanie w połączeniu z LDAP, IME.
Tom O'Connor,
@ TomO'Connor Moim zdaniem idealnie nadaje się do prowadzenia kont lokalnych.
gertvdijk
To bardzo zły pomysł ... który nie umożliwia poważnego zarządzania użytkownikami, z szybką możliwością zmiany przyznanego dostępu, ani zarządzania dostępem w ramach czasowych. Zdecydowanie nie nadaje się do zarządzania tysiącami kont, na przykład na uniwersytecie.
jmary,
4

Jak wspomina SvenW, istnieje 389DS i Kerberos. Od wersji RHEL 6.2 Red Hat zawarł IPA w dystrybucji (a więc także w CentOS). Jest to pełny pakiet zarządzania tożsamością, który zawiera 389DS i Kerberos, z opartą na zasadach kontrolą nad uwierzytelnianiem i autoryzacją oraz opcjonalnie DNS. Może być nawet skonfigurowany do jednokierunkowej lub dwukierunkowej synchronizacji z Active Directory.

IPA prawie wymaga SSSD na hostach RHEL, ale działa bez niego. Testowałem nawet podłączenie Solaris 10 do IPA (działa, ale trochę dziwnie). IPA jest dość prosta w konfiguracji dla hostów RHEL.

Jest to oparte na projekcie FreeIPA .

James O'Gorman
źródło
Dla RHEL i innych serwerów Linux w środowisku głównie Linux, jest to z pewnością najlepszy wybór.
Michael Hampton
1

Dla twoich kont użytkowników sieci OpenLDAP jak wspomniano SvW.

Powinieneś także spojrzeć na „Systemy zarządzania konfiguracją”, aby zarządzać swoimi lokalnymi kontami i wszystkim innym na serwerach. Spójrz na CFEngine, Bcfg2, Puppet i Chef. Jeśli korzystasz z AWS, mają OpfyWorks.

Jeśli naprawdę potrzebujesz zarządzać ponad 100 serwerami, masz 10 Sysadminów lub korzystasz z oprogramowania do zarządzania konfiguracją.

Matías
źródło
1

To może być oczywista odpowiedź, ale „użyj Active Directory”. Musisz nieco zmodyfikować nasz schemat AD, aby uwzględnić pola specyficzne dla systemu Unix, ale kiedy to zrobisz, będziesz mieć jeden katalog wszystkich kont użytkowników, który działa na wielu platformach.

Być może mniej przydatny, jeśli jesteś sklepem tylko dla Uniksa - ale tak naprawdę nie widziałem wielu z nich. Ale AD jest w rzeczywistości dość dobrym połączeniem kluczowych elementów LDAP i Kerberos. To trochę ironiczne.

Ale to, co otrzymasz „za darmo”, to konta wieloplatformowe i integracja Kerberos, dzięki czemu możesz wykonywać eksport NFSv4, stosując listy ACL „rozpoznawane przez CIFS” i podłączenia NFS krb5i / p, z silnym (er) uwierzytelnieniem użytkownika.

Sobrique
źródło