Patrzę na oprogramowanie, które zapewnia użytkownikowi jedną tożsamość na wielu komputerach. Oznacza to, że użytkownik powinien mieć takie same uprawnienia na każdym komputerze, a użytkownik powinien mieć dostęp do wszystkich swoich plików (domowy katalog mobilny) na każdym komputerze. Wydaje się, że istnieje wiele rozwiązań tego ogólnego pomysłu, ale staram się wybrać dla mnie najlepsze. Oto kilka szczegółów wraz z wymaganiami:
- Sieć maszyn to instancje Amazon EC2 z systemem Ubuntu.
- Dostęp do maszyn uzyskujemy za pomocą SSH.
- Niektóre maszyny w tej sieci LAN mogą mieć różne zastosowania, ale dyskutuję o maszynach tylko do określonego użytku (na platformie wielodostępnej).
- System niekoniecznie będzie miał stałą liczbę maszyn.
- Być może będziemy musieli trwale lub tymczasowo zmienić liczbę uruchomionych maszyn. To jest powód, dla którego szukam scentralizowanego uwierzytelniania / przechowywania.
- Wdrożenie tego efektu powinno być bezpieczne.
- Nie jesteśmy pewni, czy użytkownicy będą mieli bezpośredni dostęp do powłoki, ale ich oprogramowanie potencjalnie będzie działało (oczywiście pod ograniczonymi nazwami użytkowników Linuksa) w naszych systemach, co jest tak dobre, jak bezpośredni dostęp do powłoki.
- Załóżmy, że ze względu na bezpieczeństwo ich oprogramowanie może być potencjalnie złośliwe.
Słyszałem o kilku technologiach / kombinacjach, aby osiągnąć mój cel, ale nie jestem pewien, jakie będą konsekwencje każdej z nich.
- Starszy post ServerFault zalecał NFS i NIS, chociaż kombinacja ma problemy z bezpieczeństwem, zgodnie z tym starym artykułem firmy Symantec . Artykuł sugeruje przejście na NIS +, ale jak na to stare, w tym artykule w Wikipedii zacytowano wypowiedzi sugerujące odejście od NIS + od Sun. Zalecana wymiana to kolejna rzecz, o której słyszałem ...
- LDAP. Wygląda na to, że LDAP może służyć do zapisywania informacji o użytkownikach w scentralizowanej lokalizacji w sieci. NFS nadal musiałby być wykorzystywany do pokrycia wymogu „folderu domowego w roamingu”, ale widzę odniesienia do ich używania razem. Skoro artykuł w firmie Symantec wskazywał na problemy związane z bezpieczeństwem zarówno w NIS, jak i NFS, czy istnieje oprogramowanie zastępujące NFS, czy powinienem posłuchać sugestii tego artykułu dotyczących jego zablokowania? Skłaniam się ku LDAP, ponieważ inny podstawowy element naszej architektury, RabbitMQ, ma wtyczkę uwierzytelniania / autoryzacji dla LDAP. RabbitMQ będzie dostępny w ograniczony sposób dla użytkowników w systemie, dlatego chciałbym powiązać systemy bezpieczeństwa, jeśli to możliwe.
- Kerberos to kolejny bezpieczny protokół uwierzytelniania, o którym słyszałem. Dowiedziałem się o tym kilka lat temu na zajęciach z kryptografii, ale niewiele o tym pamiętam. Widziałem w Internecie sugestie, że można go połączyć z LDAP na kilka sposobów. Czy to konieczne? Jakie są zagrożenia bezpieczeństwa związane z LDAP bez Kerberos? Pamiętam też, że Kerberos był używany w innym oprogramowaniu opracowanym przez Carnegie Mellon University ...
- System plików Andrew lub AFS. OpenAFS jest dostępny do użycia, choć jego konfiguracja wydaje się nieco skomplikowana. Na mojej uczelni AFS spełnia oba wymagania ... Mogę zalogować się na dowolnym komputerze, a mój „folder AFS” jest zawsze dostępny (przynajmniej po uzyskaniu tokena AFS).
Czy wraz z sugestiami, na którą ścieżkę powinienem się zwrócić, czy ktoś ma jakieś przewodniki, które byłyby szczególnie pomocne? Jak wskazał pogrubiony tekst, LDAP wydaje się najlepszym wyborem, ale szczególnie interesują mnie szczegóły implementacji (Keberos? NFS?) W odniesieniu do bezpieczeństwa.
To jest częściowa odpowiedź.
NIS / NIS +
Nie używaj NIS. Użyj LDAP ze schematem nis.
OpenLDAP (alias slapd na Ubuntu)
Upewnij się, że skonfigurowałeś właściwe ACL i SSF (czynniki siły bezpieczeństwa).
Jeśli nie jesteś ostrożny, wysyłanie haseł jest bardzo łatwe.
http://www.openldap.org/doc/
NFS
NFS nie jest zaszyfrowany.
Może być zawinięty w ssl z pewnymi sztuczkami.
Bez protokołu Kerberos uwierzytelnianie opiera się na ip_addr.
Dzięki Kerberos możliwe jest, że SASL jest używany do szyfrowania wszystkiego.
Kerberos
wymaga, aby OpenLDAP miał uwierzytelnianie tranzytowe SASL dla uwierzytelniania LDAP. (Nie trudne.)
Należy użyć wpisów DNS. (Nie wymagane, ale bardzo przydatne).
Zamiast ssh-keys można użyć GSSAPI. (Może współistnieć.)
Maszyny KDC powinny być oddzielone od maszyn klienckich.
OpenAFS
Encrypted with DES. (Nie uważany za bezpieczny.)
Wymaga kerberos lub własnego starszego serwera.
Ma własne listy ACL systemu plików.
źródło