dlaczego dostęp root powinien być wyłączony dla ssh? Zawsze słyszę, że ze względów bezpieczeństwa. Ale nie rozumiem. Co różni się od zalogowania jako użytkownik inny niż root sudo su -
? Jaki jest preferowany sposób obsługi zadań wymagających uprzywilejowanych uprawnień?
Dzięki
Tomasz
Odpowiedzi:
Sudo jest preferowanym sposobem, gdy trzeba delegować zadania administracyjne ze względu na możliwość kontroli i bogatą szczegółowość. Sudo pozwala na rejestrowanie wszystkich poleceń i pozwala administratorowi skonfigurować różne profile sudo dla poszczególnych osób lub grup.
Dostęp do su lub root to wszystko albo nic
źródło
sudo -s
lubsudo bash
. Chyba że mówisz o ograniczeniu zestawu poleceń/etc/sudoers
, których nigdy nie widziałem w środowisku produkcyjnym, w którym sudo jest używane interaktywnie. Gdy sudo jest włączone, złośliwe oprogramowanie (np. Uruchamiane przez wpisaniemake
lubpython setup.py
w losowym repozytorium, które właśnie sklonowałeś z GitHub) skutecznie ma uprawnienia root. Porównaj to ze scenariuszem, w którym sudo jest wyłączone i zamiast tego do wykonywania poleceń jako root używa się osobnego połączenia SSH.Root to jedyne konto, które na pewno jest włączone i włączone na każdej maszynie uniksowej, więc nie trzeba zastanawiać się nad wyborem go, aby spróbować brutalnie wymusić hasło. Bez zewnętrznych narzędzi (owijarki, które zabijają oczywiste skanery, Intruder Prevention Devices itp.) To tylko kwestia czasu, zanim hasło zostanie ustalone. Nawet z zewnętrznymi narzędziami zapobiegającymi tego rodzaju zachowaniu, nadal dobrym pomysłem jest zmuszenie przychodzących użytkowników do zalogowania się jako zwykły użytkownik, a następnie su / sudo / pfexec w celu uzyskania rozszerzonych uprawnień. Tak, jest to dodatkowy krok, co oznacza, że będziesz musiał utworzyć konta użytkowników na komputerach, które są współużytkowane przez użytkowników root, ale to kolejna bariera między atakującym a nieograniczoną kontrolą nad pudełkiem.
źródło
Główną różnicą jest to, że atakujący musi również odgadnąć nazwę użytkownika. Jeśli pozwolisz rootowi się zalogować, musi on tylko odgadnąć hasło.
Może również sfałszować dane logowania użytkownika otrzymującego klucz ssh lub ponownie wysyłającego dane przy użyciu metody „człowiek w środku” i może zalogować się do systemu bez konieczności wpisywania hasła. Ale jeśli loguje się jako użytkownik, musi wykonywać polecenia sudo-ize i dlatego musi ręcznie wpisać hasło. Jeśli był zalogowany jako root, nie musi sudo-ize rzeczy, więc jest o jeden krok mniej bezpieczeństwa.
źródło
Istnieją setki tysięcy komputerów, które skanują w poszukiwaniu sshd i brutalnie je zmuszają. „root” to dobre konto, aby spróbować najpierw, ponieważ jeśli się zepsuje, jesteś całkowicie właścicielem maszyny. Jest to również wspólne konto we wszystkich systemach * nix, chyba że wyłączysz logowanie roota . Jest to bardzo dobra praktyka bezpieczeństwa.
źródło
Główną zaletą tego jest to, że pozwala na bardziej elastyczną kontrolę dostępu: jeśli użytkownik ma uprawnienia root za pośrednictwem sudo, łatwo jest przyznać uprawnienia root lub je zabrać w razie potrzeby. I odwrotnie, jeśli wręczasz ludziom root pw, nie możesz go zabrać (chyba że jesteś Men in Black ;-)), możesz jedynie zmienić root pw, co wpłynie na wszystkich.
W tym kontekście bezpośrednie logowanie do roota jest niepotrzebne, ponieważ nikt nie ma root pw.
(Nadal będziesz potrzebować root pw do awaryjnego dostępu do konsoli w trybie pojedynczego użytkownika, ale powinny istnieć specjalne przepisy dotyczące tego).
źródło
Ale HP-UX nigdy nie wymusza niedostępności roota przez ssh, dlaczego?
źródło