Po co zawracać sobie głowę „rootem” z logowania ssh?


4

Najlepszą praktyką jest usunięcie zdolności „root” do logowania się na ssh. Muszę jednak uruchomić kilka poleceń Ansible i łączę się przez użytkownika o nazwie „amdhske”, a następnie ustawiłem tego użytkownika, aby nie musiał wprowadzać hasła sudo w przeciwnym razie Ansible musi trzymać hasło użytkownika w ruchu.

Jaki jest zatem sens wyłączenia dostępu roota w tym przypadku? Każdy atakujący, który wejdzie na konto użytkownika „amdhske” za pośrednictwem ssh, może wtedy sudo do diabła z serwerem. Domyślam się, że jedyną zaletą jest to, że wybierając długą losową nazwę użytkownika, jest mało prawdopodobne, aby napastnik wiedział o tym, podczas gdy „root” jest domyślną nazwą użytkownika, no, „root”. Czy jest jakiś inny powód?


O co chodzi? Pokonałeś ten punkt, mając użytkownika, który może uruchamiać polecenia jako superuser / sudo bez wprowadzania hasła. Nie służy to żadnemu celowi, oprócz wyłączenia innego wektora ataku, oczywiście, że istniejący wektor ataku jest nawet najgorszy, a root jest dostępny przez ssh.
Ramhound

dlaczego jest gorzej? Jeśli coś jest nieco lepsze, ponieważ atakujący musi odgadnąć nazwę użytkownika?
Zuriar

Jeśli jesteś w punkcie, w którym atakujący próbuje nawet zaatakować twój serwer, prawdopodobnie ma kogoś, kto ma społeczną wiedzę na temat nazwy użytkownika.
Ramhound

1
Jestem pewien, że Sony nie sądził, że zostaną zhakowani, a 14 TB ich danych również wycieknie. Jak rozwiązujesz swój drugi problem, nie mogę pomóc, mogę ci tylko powiedzieć, że to jest coś, na co powinieneś się przyjrzeć.
Ramhound

1
Którą nazwę konta najprawdopodobniej odgadnę? „root” lub „amdhske”?
hymie

Odpowiedzi:


4

Całkiem proste. Dwa powody:

  1. Możesz ograniczyć to, co możesz sudo, bez hasła ze swoim użytkownikiem. Po prostu wprowadź odpowiednią konfigurację w plikach sudoers:

    amdhske ALL=NOPASSWD: /usr/bin/somecommand
    

Jeśli logujesz się za pomocą roota, masz wszystkie uprawnienia do robienia wszystkiego.

  1. Każdy skryptujący dzieciak na ziemi wie, że twoją nazwą konta administratora jest root. Jak myślisz, jakiej nazwy użytkownika spróbują użyć w swoim systemie? Racja, root.

Dlatego właśnie dobra praktyka bezpieczeństwa polega na wyłączeniu logowania roota.


... dodaj także, że niektóre dystrybucje Linuksa domyślnie wyłączają użytkownika root (np. Ubuntu ...).
Hastur

Argumenty te nie dotyczą przypadku użycia Ansible.
Alexander Shcheblikin

1

Aby rozwiązać problem za pomocą „Ansible” bez wyłączania pytania o hasło sudo, możesz sudo trywialne polecenie jak sudo ls a następnie kontynuuj z sudo Ansible. To tylko praca wokół ciebie i ciebie sudo wygasa po upływie pewnego czasu, więc nie może całkowicie rozwiązać problem.

PS. Rozumiem, że nie dotyczy to bezpośredniego pytania PO, ale próbuję rozwiązać jego problem z rootem


1

Dzieje się tutaj kilka rzeczy, a niektóre mogę przegapić, ale tutaj.

  1. Bezpieczeństwo według niejasności: sprawdź swój dziennik autoryzacji przez jakiś czas. Prawdopodobnie codziennie są setki prób logowania do roota za pomocą zautomatyzowanych skryptów, a uniemożliwienie logowania przez tego użytkownika blokuje niektóre słabo widziane owoce.

  2. Starsze strategie: nie jest to tak duży interes z uwierzytelnianiem opartym na kluczach, ale przy starszych modelach uwierzytelniania bardzo trudno było pozostawić logowanie roota otwarte. Te najlepsze praktyki nie uległy zmianie, ponieważ logowanie do roota nie przynosi żadnych rzeczywistych korzyści.

  3. Logowanie: Jeśli każdy użytkownik ma swoje własne konto, możesz łatwiej stwierdzić, kto zrobił to, co w twoim systemie.

Ponadto sudo bez hasła nie było jeszcze tak dawno uważane za bardzo słabą praktykę. Tylko w wieku uwierzytelniania opartego na kluczu stało się to przydatne i bezpieczne. Użytkownicy często nie znają swoich haseł, więc nie mogą ich podać, nawet jeśli zostaną o to poproszeni.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.