Jestem nowy w Ansible. Większość przewodników dotyczących udostępniania VPS, które widziałem do tej pory, robi to:
- wyłącz logowanie roota
- utwórz nowego użytkownika, który będzie mógł się logować tylko
ssh
(nie hasłem) - dodaj nowego użytkownika do
wheel
grupy z uprawnieniami sudo bez hasła
Rozumiem (1) i (2), ale nie (3).
Z pewnością bez hasła sudo
jest jak logowanie się jako root
? Rozumiem korzyści (wygodę), ale czy to nie jest bardzo niepewne?
Zdaję sobie sprawę z tego, że administratorzy zarządzają swoimi sieciami na różne sposoby, dlatego można powiedzieć, że jest to „subiektywne”, ale jest to BARDZO powszechna praktyka, jest nawet pokazywana w różnych oficjalnych dokumentach odpowiadających, a także w przewodnikach wydawanych przez firmy hostingowe. Jest to sprzeczne ze zdrowym rozsądkiem. Jaka jest za tym logika?
Odpowiedzi:
Jeśli konto usługi może wykonywać sudo bez hasła, musisz zabezpieczyć dostęp do tego konta.
Mając konto nie ma hasła, i używając tylko klucze SSH do logowania się do niego, osiąga to, o ile można zachować ssh klucz prywatny, a także zabezpieczyć.
źródło
Nowy użytkownik utworzony w (2) może zalogować się tylko za pomocą klucza SSH, bez hasła. Klucz SSH zapewnia pośredni dostęp do roota. Jest to równoważne z zezwoleniem na zalogowanie się do konta root za pomocą klucza.
Ponieważ konto nie ma hasła, nie można
sudo
poprosić o hasło. Również Ansible musi być w stanie wykonywać polecenia. Posiadanie dodatkowego hasła do podania w tym samym miejscu co klucz nie zwiększy bezpieczeństwa.źródło
Problem polega na tym, że odpowiedzią są administratorzy i automatyzacja, więc jeśli musisz wprowadzić hasło, aby uruchomić skrypt, nie jest to naprawdę najlepszy sposób. Nie jest też bezpieczne przechowywanie hasła sudo w pliku lub bazie danych i odbieranie go za każdym razem, gdy uruchamia playbook. Tak więc połączenie sudo bez hasła i uwierzytelnienia za pomocą kluczy ssh to najlepsza metoda zapewnienia bezpieczeństwa i braku właściwych problemów poprzez uruchomienie playbooka. Jesteś także administratorem i wiesz, co programujesz w poradniku. Poradnik nie może więc zniszczyć twoich serwerów.
źródło