Zarządzanie dostępem do wielu systemów Linux

15

Szukałem odpowiedzi, ale nic tu nie znalazłem ...

Krótko mówiąc: organizacja non-profit bardzo potrzebuje modernizacji swojej infrastruktury. Pierwszą rzeczą jest znalezienie alternatyw dla zarządzania kontami użytkowników na wielu hostach Linux.

Mamy 12 serwerów (fizycznych i wirtualnych) i około 50 stacji roboczych. Mamy 500 potencjalnych użytkowników tych systemów. Osoba, która budowała i utrzymywała systemy przez lata, przeszła na emeryturę. Napisał własne skrypty do zarządzania tym wszystkim. Wciąż działa. Brak skarg. Jednak wiele rzeczy jest bardzo ręcznych i podatnych na błędy. Kod jest nieuporządkowany i po aktualizacjach często trzeba go poprawić. Najgorsze jest to, że napisano niewiele dokumentów. Jest tylko kilka notatek ReadMe i losowych, które mogą już nie być istotne. Konserwacja stała się więc trudnym zadaniem.

Obecnie kontami zarządza się za pomocą / etc / passwd w każdym systemie. Aktualizacje są dystrybuowane za pomocą skryptów cron w celu korygowania systemów w miarę dodawania kont na „głównym” serwerze. Niektórzy użytkownicy muszą mieć dostęp do wszystkich systemów (takich jak konto sysadmin), inni potrzebują dostępu do współdzielonych serwerów, podczas gdy inni mogą potrzebować dostępu do stacji roboczych lub tylko ich części.

Czy istnieje narzędzie, które może nam pomóc w zarządzaniu kontami spełniającymi poniższe wymagania?

  • Najlepiej oprogramowanie typu open source (tzn. Bezpłatne, ponieważ budżet jest bardzo ograniczony)
  • główny nurt (tj. utrzymany)
  • najlepiej ma integrację LDAP lub może być przystosowany do współpracy z usługą LDAP lub AD w celu uwierzytelnienia użytkownika (będzie potrzebny w najbliższej przyszłości do integracji kont z innymi biurami)
  • zarządzanie użytkownikami (dodawanie, wygaśnięcie, usuwanie, blokowanie itp.)
  • pozwala zarządzać, do których systemów (lub grup systemów) ma dostęp każdy użytkownik - nie wszyscy użytkownicy są dozwoleni we wszystkich systemach
  • obsługa kont użytkowników, które mogą mieć różne katalogi główne i podłączenia dostępne w zależności od systemu, do którego są zalogowani . Na przykład
    • sysadmin zalogowany na serwerze „main” ma main: // home / sysadmin / as homedir i ma wszystkie współużytkowane podłączenia
    • sysadmin zalogowany na stacjach roboczych personelu miałby nas: // user / s / sysadmin jako homedir (inny niż wyżej) i potencjalnie ograniczony zestaw montowań,
    • zalogowany klient miałby swój homedir w innej lokalizacji i nie miałby wspólnych montowań.
  • Jeśli istnieje prosty interfejs zarządzania, byłby niesamowity.
  • A jeśli to narzędzie jest wieloplatformowe (Linux / MacOS / * nix), to będzie cud!

Przeszukałem sieć i nie znalazłem nic odpowiedniego. Jesteśmy otwarci na wszelkie sugestie. Dziękuję Ci.

EDYCJA: To pytanie zostało niepoprawnie oznaczone jako duplikat. Link do odpowiedzi mówi tylko o posiadaniu tych samych homedirów na wszystkich systemach, podczas gdy musimy mieć różne homediry na podstawie tego, do którego użytkownika systemu jest aktualnie zalogowany (MULTIPLE homedirs). Dostęp należy przyznać tylko niektórym maszynom, a nie całej partii. Mody, proszę zrozumieć pełny zakres problemu zamiast po prostu oznaczać go jako duplikat punktów ...

Swartz
źródło
„Punkty” nie są przyznawane za oznaczenie duplikatu. Twoje pytanie nie było wystarczająco jasne, aby 5 osób uznało je za duplikat.
user9517
Nie wiedziałem Ok dzięki. Został jednak oznaczony w pośpiechu jako duplikat. Przeczytaj wymagania dotyczące formularza, które jasno określają, co jest potrzebne. To nie jest duplikat. Podany link do „rozwiązania” pozwala na nieograniczony dostęp do wszystkich systemów (musimy ograniczyć, kto ma dostęp i do jakiego systemu lub grup systemów). Rzeczywista lokalizacja katalogu głównego zależy od systemu, do którego uzyskiwany jest dostęp. Ten sam użytkownik może mieć różne katalogi główne ORAZ podłączenia w zależności od systemu, w którym jest zalogowany.
Swartz
Żeby wyjaśnić: w wyżej wspomnianym przykładzie sysadmin, main i nas to różne serwery? Czy ten sam użytkownik miałby dostęp do różnych homedirów w zależności od homediru, do którego się loguje?
Marco Bizzarri,
@MarcoBizzarri: nie jestem pewien, czy rozumiem. System, do którego zalogowany jest użytkownik, określa katalog główny. SysA i SysB mogą mieć zarówno / home / bob w / etc / passwd, podczas gdy homdir dla Boba na SysC może być / someplace / else / bob. Dwie lokalizacje będą zawierać różne dane. Użytkownik systemu zalogowany określa, jakie inne podłączenia są dostępne. Pozwoliłoby to tylko systemom personelu na dostęp do współużytkowanych wierzchowców personelu. Gdzie jako „publicznie” dostępne systemy będą ograniczone do innych montowań. Dlatego personel musi znajdować się na komputerze wyznaczonym przez personel, aby uzyskać dostęp do wierzchowców personelu. Trochę podziału na przedziały ...
Swartz
Ok, więc są tutaj dwa różne punkty: homedir jest naprawiony i może być gdzieś (na tym samym serwerze lub na innym), ale zawsze tak jest. Mam na myśli, że SysA ma zawsze swój homedir na serverX, bez względu na wszystko. Następnie jest wspólny katalog dla personelu, nazwijmy go staff_dir, który powinien być dostępny, gdy ludzie personelu logują się do stacji personelu, ale nie, gdy logujesz się do stacji normalnej; czy to jest poprawne?
Marco Bizzarri,

Odpowiedzi:

17

FreeIPA jest prawdopodobnie tym, czego szukasz. Dla Linuksa to, czym jest Active Directory dla Windows. (Może także rozmawiać z AD, jeśli masz heterogeniczne środowisko, ale nie powinien być używany do bezpośredniego zarządzania komputerami z systemem Windows. Do tego użyj AD).

Dokumentacja Red Hata (nazywają to Zarządzanie Tożsamością) jest bardzo dokładna i łatwa do naśladowania i powinna mieć zastosowanie głównie, nawet jeśli nie korzystasz z systemów wywodzących się z Red Hata.

Michael Hampton
źródło
+1 freeipa jest niesamowite.
Sirex
Będę patrzył na FreeIPA. Dzięki za wskazówkę. Pytanie: czy FreeIPA obsługuje różne homediry w różnych systemach? Przykład: użytkownik Bob ma (wyeksportowany przez NFS) katalog główny w katalogu / shared / home / xyz po zalogowaniu do SystemA i SystemB, ale w SystemC / cokolwiek / special jest katalogiem domowym Boba.
Swartz
Czy spojrzałeś na automounts ? To powinno zapewnić ci około 90% drogi, a pozostałe 10% to niewielkie zmiany w istniejącym środowisku.
Michael Hampton
Tak, istniejące systemy używają automatycznego montażu. Są one konfigurowane ręcznie dla każdego typu systemu. Niestety nasze istniejące środowisko jest zbyt kłopotliwe do utrzymania. Zwłaszcza po aktualizacjach lub podczas tworzenia nowych obrazów systemu. Chociaż jego rdzeń działa, zawsze jest coś, co wymaga modyfikacji, aby działało.
Swartz
No więc. Teraz masz dobrą okazję, aby rozpocząć sprzątanie.
Michael Hampton
6

Proponuję dobrego lokalnego konsultanta, który oceni szczegóły twojej sytuacji ...

Naprawdę.

Mogą istnieć inne wymagania biznesowe lub niuanse, których ludzie na tym forum mogą nie rozpoznać lub zainwestować - na tyle, aby rozważyć. Specjalny zasób to najlepszy wybór ... W przeciwnym razie po prostu rzucamy ci rekomendacje dotyczące produktów, które łatwo wykraczają poza zakres prostych pytań i odpowiedzi.


Mimo to moim podejściem byłoby wykorzystanie Microsoft Active Directory i powiązanie systemów Linux przy użyciu SSSD lub LDAP. FreeIPA ma się dobrze w domu z systemem Linux, ale nawet jeśli mówisz „non-profit”, to niekoniecznie wyklucza Windows. Gdzieś na ścieżce napotkasz Active Directory . Być może warto to rozszerzyć o automatycznie montowane katalogi domowe, ale nie wiadomo, kto jest montowany, kiedy i gdzie.

Nawet w 99-procentowych środowiskach chmury prywatnej Linuksa, które teraz buduję, wciąż polegam na Active Directory dla łatwości zarządzania i scentralizowanego uwierzytelniania. Grupy i uprawnienia dostępu są łatwe, zasady haseł i starzenie się konta są proste. Wszelkie obawy dotyczące łatwości konserwacji, udostępniania i kompatybilności są objęte rozwiązaniem Microsoft. Replikacja jest wbudowana, dobrze udokumentowana, a technologia ma w sobie coś z przyszłości.

W twoim pierwotnym pytaniu brakuje jednak niektórych szczegółów ...

  • Jakie konkretne dystrybucje Linuksa są obecne w środowisku? Czy wersje są spójne?
  • Czy potrzebujesz takiego samego poziomu szczegółowości zarządzania dla systemów Macintosh (większość organizacji nie próbuje w pełni zarządzać komputerami Apple)?
  • Czy są zdalni użytkownicy?
  • Wspomniałeś o „* nix” - jaki typ * nix jest obecny?
ewwhite
źródło
2
nic nie jest warte, aby Freeipa mogła zrobić te wszystkie rzeczy na maszynach z linuksem (replikacja, polityka haseł, grupy itp.) i jest bardzo łatwa w konfiguracji (naprawdę!). Wykonuje również dwukierunkową replikację w usłudze Active Directory (całkiem pewni, że nowi użytkownicy są jednokierunkowi, ponieważ AD ma dodatkowe pola), ale jeśli masz maszyny z systemem Windows, będziesz chciał AD, niezależnie od tego, czy jest to tak ważne dla systemu Windows życie. Ponadto w dokumentacji freeipa nadal brakuje imho.
Sirex
Niestety dla konsultanta nie ma budżetu. Nie ma maszyn z systemem Windows (tylko jeśli pracownicy przynoszą własne). Wszystkie systemy to CentOS (niektóre 5.x inne to 6.x). Organizacja jest w trakcie pozyskiwania starszych (i 2007) komputerów iMac, dlatego fajnie byłoby mieć narzędzie działające w systemach OSX i Linux. Jedna fajna rzecz: nie musisz się martwić o Windows.
Swartz
Zgadzam się z sugestią Active Directory - jeśli koszty licencyjne stanowią problem, Samba4 jest bezpłatną alternatywą i korzysta z tych samych narzędzi / infrastruktury do zarządzania, co natywna reklama AD-Windows-hosetd. Prawie wszystko inne może zostać skonfigurowane do uwierzytelniania w stosunku do AD poprzez PAM, winbind, LDAP itp. Aby zarządzać konfiguracją całej infrastruktury, sprawdź Salt ( saltstack.com/community.html blog.smartbear.com/devops/… )
nedm
3

Obecny system działa, ale jest trudny do zarządzania. Sądzę, że istnieją również inne problemy z zarządzaniem tymi serwerami, jeśli wszystko zostało zrobione ręcznie. Przyjąłbym inne podejście, nie zastępując czegoś, co działa (zarządzanie użytkownikami) i nie rozwiązałem problemu administracyjnego serwerów.

Polecam użycie czegoś takiego jak cfengine http://cfengine.com/community (tam darmowa wersja), aby „zmodernizować” administrację systemu, a nie tylko zarządzanie użytkownikami. To dobra okazja do wypróbowania tego, ponieważ twój obecny system działa bardzo podobnie do używania cfengine do dystrybucji konfiguracji na serwery, w twoim przypadku / etc / passwd. Zamiast zastępować, migruj te skrypty do cfengine. Mamy nadzieję, że wpływ będzie bardzo minimalny, ponieważ nadal używasz tego samego pliku / etc / passwd.

Gdy poczujesz się komfortowo z cfengine, możesz zbudować więcej przepisów, aby rozwiązać więcej problemów, takich jak posiadanie zupełnie nowego systemu zarządzania użytkownikami i masz narzędzie do zarządzania konfiguracją na serwerach.

Aby pomóc Ci zacząć, znalazłem ten link http://explosive.net/opensource/cfpasswd/doc/cfengine.html, który pokazuje, jak rozpowszechniać / etc / passwd i powiązane pliki.

Nawet jeśli chcesz teraz zastąpić system zarządzania użytkownikami, nadal potrzebujesz narzędzia administracyjnego do zarządzania tymi serwerami. Lepiej mieć narzędzie administracyjne wcześniej niż później i ponownie skonfigurować zarządzanie użytkownikami w narzędziu administracyjnym.

imel96
źródło
0

Kilka krótkich rzeczy do dodania -

Używam Puppet w moim wdrożeniu - podobny pomysł do cfengine - http://puppetlabs.com

Może to również zrobić zarządzanie użytkownikami i ogólne zarządzanie konfiguracją / serwerem.

Jeśli chcesz wypróbować coś tak wszechstronnego jak Samba, może on mieć możliwość zarządzania katalogami z pewną konfiguracją, a także możliwość korzystania z zaplecza LDAP do konfiguracji. Samba 4 jest bardzo dojrzała i może zapewnić zintegrowane środowisko z systemami Windows i Linux do zarządzania / uwierzytelniania.

Samba działa również z AD lub jako zamiennik AD.

Jest też produkt o nazwie Centrify, na który patrzyłem jakiś czas temu. Nigdy nie posunąłem się za daleko, ale sądzę, że mają też wersję freeware / opensource. O ile pamiętam, miał potencjał dla mieszanego środowiska, zapewniającego zarządzanie Windows i Linux, a być może także Mac.

Poparłbym sugestię konsultanta. Wdrożenia te mogą być bardzo skomplikowane w konfiguracji bardzo szybko, ale łatwe do utrzymania po ich udokumentowaniu i skonfigurowaniu.

Powodzenia

JTWOOD
źródło
1
Wczesne spojrzenie na Puppet and Chef do zarządzania konfiguracją. Puppet pozwala na 10 darmowych węzłów, z Chef dostajesz 5 za darmo. Po tym czasie Puppet Labs pobiera opłatę w wysokości 99 USD / węzeł / rok. Będzie to dla nas kilka tysięcy. Łamacz rozdań. Chociaż nie pamiętam cen Chef, ale to ten sam pomysł. Nie w budżecie. :(
Swartz