Skocz do zawartości

Sudo Vs Su


rmr

Rekomendowane odpowiedzi

Witam.

Przez dłuższy okres czasu korzystałem tylko z jednej dystrybucji Linuksa... Ubuntu. Zainstalowałem F11, urzekła mnie mnogość graficznej konfiguracji i kilka pomniejszych rozwiązać, dlatego postanowiłem dłużej przy niej pozostać.

 

Jednak przyzwyczajenia wzięły górę i w pierwszej kolejności skonfigurowałem sudo i policykit aby korzystały z hasła użytkownika. Wychodzę z założenie że na desktop, z którego korzystam tylko ja, jedno hasło to i tak zbyt wiele. Dlatego szybko zablokowałem hasło roota.

 

Problem pojawił się jeszcze tego samego dnia. Okazało się że w F11, aplikacje takie jak yumex, system-config* i inne aplikacje z GUI wymagające podwyższonych uprawnień, żądają uwierzytelnienia hasłem root, tym samym nie mogę uruchomić żadnej z tych aplikacji, gdyż hasło roota jest zablokowane. W ubuntu sudo zajmowało się autoryzacją takich aplikacji, wystarczyło poprawnie skonfigurować sudoers. W F11 zrealizowano to przy pomocy PAM, którego konfiguracja jest o wiele trudniejsza i bardziej ryzykowna w kontekście bezpieczeństwa.

 

Dlatego zanim zacznę wertować dokumentacje PAMa chciałbym poznać Waszą opinie na ten temat.

Który z poniższych zestawów będzie lepszy do codziennego podnoszenia uprawnień na desktopie?

 

sudo i uwierzytelnienie hasłem użytkownika w PAM i policykit (brak hasła roota)?

..czy..

su i uwierzytelnienie hasłem roota w PAM i policykit (brak hasła użytkownika)?

 

Nie mam zamiaru tworzyć jakichś selektywnych reguł dostępu dla poszczególnych aplikacji, dlatego funkcjonalność obydwu metod będzie podobna, chodzi mi tylko o bezpieczeństwo i podatność na ataki z zewnątrz.

 

Dopuszczam też możliwość wykorzystania innego sposobu uwierzytelnienia, którego jeszcze nie znam, ale z chęcią poznam.

Jedyne wymagania jakie stawiam to - nie więcej niż jedno hasło na desktop.

 

[edit]

czy może ktoś poprawić lub usunąć opis tematu, nie jakim cudem te "c" się tam znalazło

Edytowane przez WalDo
"c" usunięte :)
Odnośnik do komentarza
Udostępnij na innych stronach

[...] gdyż hasło roota jest zablokowane.
No to odblokuj. W czym problem? Uruchom system w trybie single user albo z płyty instalacyjne w trybie rescue i ustaw hasło na nowo.

 

W przeciwieństwie do Ubuntu w Fedorze preferowanym sposobem jest przechodzenie na roota przez "su -". A jeśli chcesz ograniczyc ilość haseł to zwykłego użytkownika loguj bez hasła.

Odnośnik do komentarza
Udostępnij na innych stronach

W przeciwieństwie do Ubuntu w Fedorze preferowanym sposobem jest przechodzenie na roota przez "su -". A jeśli chcesz ograniczyc ilość haseł to zwykłego użytkownika loguj bez hasła.

 

Tak właśnie teraz mam to ustawione, tylko zastanawiam się nad przewagą tej metody nad sudo.

 

Dla mnie obydwie metody wydają się być równie bezpieczne, z tym że moja wiedza jest dość skromna w tej dziedzinie. Chodzi mi tylko o to żeby potencjalny włamywacz nie obszedł tego typowym "Emacsem przez Sendmail". Wiedza włamywacza na pewno będzie większa od mojej i coś o czym nie mam zielonego pojęcia dla niego może być oczywistą oczywistością.

 

Dlatego chciałbym poznać wady i zalety su/sudo w kontekście bezpieczeństwa.

Może ktoś już to przerabiał i ma taką wiedzę żeby stwierdzić że np.

sudo jest potencjalnie niebezpieczne bo ...

albo

jeśli w PAM ustawisz uwierzytelnienie hasłem użytkownika do autoryzacji jako root to ...

Odnośnik do komentarza
Udostępnij na innych stronach

Dla mnie obydwie metody wydają się być równie bezpieczne, z tym że moja wiedza jest dość skromna w tej dziedzinie.
Moja wiedza jest prawdopodobnie równie skromna, ale osobiście wolę, żeby zwykły użytkownik nie mógł wykonywać poleceń przypisanych do roota bez podawania hasła (nawet jeśli musi to hasło podać 10 razy, ale ostateczny wybór należy do Ciebie). Nasz internetowy, wirtualny świat nie jest najlepszym ze światów i są ludzie, którzy chcą wejść do nas bez pukania i zaproszenia. Zwykły użytkownik adminem? Jakoś mi tak śmierdzi Windowsem (Przepraszam :) Oczywiście polityczna poprawność wskazuje, że powinienem powiedzieć "pachnie mi tu obco" :P)

Takie moje zdanie weekendowo luźne w tym temacie :)

 

Odnośnik do komentarza
Udostępnij na innych stronach

Osobiście nie używam sudo, jakoś tak pewnego razu wywaliłem i nie mam. Rozstrzyganie kwestii co jest bezpieczniejsze sudo czy pam nie jest dla śmiertelników :) Do konsolowych programów używam su, a do graficznych pam i nawet sobie dorobiłem dla edytorka http://wiki.fedora.pl/wiki/Consolehelper bo od F11 to jest jeden szablon na wszystko. Z drugiej mańki co za problem masz wpisywać "sudo yumex", zadziała tak jak chcesz.

Odnośnik do komentarza
Udostępnij na innych stronach

@WalDo

Sudo będzie skonfigurowane tak aby przy każdym wywołaniu żądało hasła użytkownika.

Fizyczny dostęp do komputera mam tylko ja, dlatego zależy mi jedynie na zabezpieczeniu systemu od zewnątrz (internet i lan).

Jestem zdania że użyteczne rozwiązania, warto kopiować nawet z windowsa.

Tym użytecznym rozwiązaniem może być np. sposób uwierzytelnienia jaki oferuje UAC w windowsie vista.

Mogło by to służyć uwierzytelnieniu w trybie graficznym, zamiast podawać hasło, kliknąłbym ok, zalety tego rozwiązania są oczywiste.

Wad jak na razie nie widzę, poza ewentualnymi błędami w implementacji.

 

 

@borzole

PAMa będę używał wymiennie z sudo lub su, poza modułem timestep, uważam je za względnie bezpieczne.

Oczywiście poziom bezpieczeństwa zależy także od konfiguracji, dlatego chciałem ustalić również czy gdy ustawie uwierzytelnienie hasłem użytkownika w PAM, nie będzie to miało negatywnego wpływu na bezpieczeństwo, ale do tego pewnie sam dojdę po przeczytaniu dokumentacji PAMa.

 

Abstrahując już od PAM i policykit, koncentruje się bardziej na pytaniu sudo czy su, gdyż uważam że jest to najsłabsze ogniwo tej układanki.

 

Jak na razie znalazłem tylko jeden argument, przeciążający szale w kierunku sudo.

Mianowicie - z sudo może korzystać jedynie użytkownik obecny w sudoers (admin), su nie posiada takich ograniczeń, podwyższyć uprawnienia może każdy kto zna hasło roota, obrazując:

su -: "nie wiem kim jesteś ale podaj hasło roota albo spadaj"

sudo: "wiem że jesteś adminem podaj swoje hasło" albo "nie ma cię w sudoers, nie jesteś adminem, spadaj"

 

Wracając do użytecznych rozwiązań:

Przeglądając poranną prasę zobaczyłem taki oto inspirujący obrazek: http://di.com.pl/pic/photo/lead/auth_DI_1214240859.png

 

Rozwiązanie podobne do uwierzytelnienia UAC z visty, użyteczne zarówno w trybie graficznym jak i w konsoli.

 

Czy ktoś ma pomysł jak to wdrożyć do Fedory?

Odnośnik do komentarza
Udostępnij na innych stronach

jaki admin w sudoers? o.O mam wrazenie ze nie czytales w ogole zadnej dokumentacji do sudo. przeciez mozna zdefiniowac grupy uzytkownikow badz samych uzytkownikow z aliasami do polecen ktore moga wykonywac.. ale masz podejscie do uacc normalnie rece opadaja. moze tak jak w win98 wystarczy nacisnac esc przy logowaniu. linux ma uczyc dobrych manier bezpieczenstwa a nie jak windows odmozdzac. mozesz sprobowac ten pomysl przedstawic developerom fedory, moze sie nie usmieja do lez :). wracajac do tematu zdecydowanie sudo poraz kolejny, na roota mozna przejsc przez sudo -s bezproblemowo (ale zachowuje zmienne srodowiskowe uzytkownika ktory je wywoluje - kwestia konfiguracji). co do pam to jest on standardowo uzywany w wiekszosci dystrybucji linuksowych, wiec nie wiem co tu jest do konfigurowania za bardzo (ew mozna sprobowac jakies ograniczenia na ilosc wprowadzonych hasel etc). jak Ci tak ciezko przychodzi wpisywanie hasla dodaj sie do grupy wheel i ustaw NOPASSWD: ALL i po frytkach. potem nie narzekaj ze cos sie zepsulo...

Odnośnik do komentarza
Udostępnij na innych stronach

Jak na razie znalazłem tylko jeden argument, przeciążający szale w kierunku sudo. Mianowicie - z sudo może korzystać jedynie użytkownik obecny w sudoers (admin), su nie posiada takich ograniczeń, podwyższyć uprawnienia może każdy kto zna hasło roota
zabieram Ci ten argument :P:

Dodaj siebie do grupy "wheel" i ustaw uprawnienia dla su:

chgrp wheel /bin/su
chmod 4550 /bin/su

i tyle może zrobić przypadkowy Jasio.

Możesz też wykasować z listy możliwość logowania się na root z określonych konsolek: http://www.google.pl/search?q=securetty&am...lient=firefox-a

 

A tak w ogóle policykit zjada na śniadanie te uac pierdółki z visty, wystarczy sobie przypomnieć problemy typu kontrola montowania usb, wysuwanie tacki pod cd, wyłączanie dźwięku przy przejściu na konsole wirtualną, kontrola zamykania systemu. Naprawdę nie wiem czego Ci brakuje w kwestii bezpieczeństwa (o selinux nie wspomniałeś).

 

Poczytaj troszku, http://docs.fedoraproject.org/security-guide

Odnośnik do komentarza
Udostępnij na innych stronach

jaki admin w sudoers? o.O mam wrazenie ze nie czytales w ogole zadnej dokumentacji do sudo. przeciez mozna zdefiniowac grupy uzytkownikow badz samych uzytkownikow z aliasami do polecen ktore moga wykonywac..

Czytałem man-a do sudo, było to dość dawno ale od tego czasu raczej nic się tam nie zmieniło.

Pytanie dotyczyło konkretnego zastosowania sudo, w pierwszym poscie wyrażnie zaznaczyłem "Nie mam zamiaru tworzyć jakichś selektywnych reguł dostępu dla poszczególnych aplikacji", jeśli jest to nadal niezrozumiałe to chodziło mi o taką linijkę w konfigu:

user ALL=(ALL) ALL

Użytkownikiem oczywiście jestem ja, jestem również adminem systemu, co się przekłada na użytkownika systemowego o nazwie "user" w powyższym konfigu.

 

ale masz podejscie do uacc normalnie rece opadaja. moze tak jak w win98 wystarczy nacisnac esc przy logowaniu. linux ma uczyc dobrych manier bezpieczenstwa a nie jak windows odmozdzac. mozesz sprobowac ten pomysl przedstawic developerom fedory, moze sie nie usmieja do lez :) .

Wiedziałem że ktoś wyskoczy z takim tekstem, nie chciałem urazić niczyich uczuć religijnych, zauważ że nie odnoszę się do całego UAC, tylko do konkretnej funkcjonalności jako UAC oferuje.

 

Czy wpisywanie hasła jest dobrym nawykiem, owszem jest.

Ale tylko w określonych sytuacjach, np w sytuacji gdy do komputera ma dostęp więcej niż jedna osoba, wtedy dobrym nawykiem jest ustawienie hasła w GDM i blokowanie sesji przy każdorazowym odejściu od komputera.

 

Nie można z góry zakładać że uwierzytelnienie hasłem jest zawsze bezpieczne

a wszystkie inne metody uwierzytelnienia są bee, to zależy od konkretnej sytuacji.

 

W pewnych sytuacja uwierzytelnienie hasłem niesie też zagrożenia, np. ktoś może podsłuchać albo podejrzeć hasło, lub stara jak Linux metoda przechwycenia hasła, związana z wpisem do .profile lub .bashrc i zmienną $PATH.

 

co do pam to jest on standardowo uzywany w wiekszosci dystrybucji linuksowych, wiec nie wiem co tu jest do konfigurowania za bardzo (ew mozna sprobowac jakies ograniczenia na ilosc wprowadzonych hasel etc).

Do konfigurowania jest wiele, przykładowo timestep o którym wcześniej wspominałem, ale chodziło mi o "uwierzytelnienie hasłem użytkownika w PAM" innymi słowy - wpisuje hasło użytkownika a PAM autoryzuje mnie jako root.

 

jak Ci tak ciezko przychodzi wpisywanie hasla dodaj sie do grupy wheel i ustaw NOPASSWD: ALL i po frytkach. potem nie narzekaj ze cos sie zepsulo...

Nie, nie mam problemów z wpisywaniem haseł, chciałbym znaleźć bezpieczną, a zarazem użyteczną metodę uwierzytelnienia. To co mi proponujesz to jest właśnie rozwiązanie rodem z win98, i uczenie złych nawyków. Może jeszcze zaproponujesz mi wykorzystanie telnetu do połączeń zdalnych. Albo stwierdzisz że ssh jest bee bo dopuszcza logowanie bez użycia hasła.

 

@borzole

Dzięki za odpowiedz to chyba pierwszy konkret w tym temacie, w takim razie nadal jestem w punkcie wyjścia jeśli chodzi o sudo vs su.

 

Policykit ma znaczną przewagę nad UAC z powodu możliwości zdefiniowania zakresu autoryzacji. Szkoda tylko że deweloperzy tego mechanizmu nie zadbali o równie konfigurowalny sposób uwierzytelnienia.

Odnośnik do komentarza
Udostępnij na innych stronach

zaczynam się gubić, czego Ty właściwie szukasz, ale czytając jeszcze raz ten wątek

Jedyne wymagania jakie stawiam to - nie więcej niż jedno hasło na desktop.
w takim razie:

 

opcja 1:

sudo z hasłem usera + ograniczenia do grupy "wheel"

- używasz wówczas tylko swojego hasła i możesz sobie ustawić nawet 100 znakowe hasło na roota (nawet nie musisz go pamiętać, ostatecznie go odzyskasz w init 1 ....oj oj hasło na grub by się przydało)

- ograniczenie do grupy wheel zapewni Ci, że tylko z Twojego konta można czymś w systemie administrować

- możesz nawet dać automatyczne logowanie w GDM (no chyba że to laptop, wówczas bym tego nie robił)

 

opcja 2:

ustaw su jak w poście poprzednim podałem + automatyczne logowanie, musisz znać wówczas tylko hasło root

 

nie mam problemów z wpisywaniem haseł, chciałbym znaleźć bezpieczną, a zarazem użyteczną metodę uwierzytelnienia
jak sam zauważyłeś wcześniej, najsłabszą stroną hasła jest że ktoś je może podejrzeć, tego nie przeskoczysz. To nie ma już nic innego jak odcisk albo cyfrowy kluczyk z zewnątrz.

Od siebie dodam tylko jeszcze, że albo masz bezpiecznie, albo wygodnie. Jedno hasło w systemie to jeden krok do kontroli wszystkiego, więc Twój pierwszy warunek zwyczajnie czyni dyskusję pustą. :ph34r:

Odnośnik do komentarza
Udostępnij na innych stronach

mozna jeszcze wziac czarna kapoke i zakryc glowe i laptopa co by moc wpisac haslo ;d potem na wszelki wypadek usunac odciski palcow z klawiatury ;] nie wspominajac juz o szyfrowaniu calego dysku, haslem i liniami papilarnymi :D jeszcze dorzucic wykrywanie osoby przy uzyciu detektora siatkowki :):ph34r: podsumowujac linux to nie windows, jak wolisz uacc windowsa - uzywaj windowsa. malo prawdopodobne zeby takie rozwiazania znalazly sie w linuksie

Odnośnik do komentarza
Udostępnij na innych stronach

zaczynam się gubić, czego Ty właściwie szukasz, ale czytając jeszcze raz ten wątek

Szukałem najlepszego schematu autoryzacji użytkowników na moim domowym desktopie, jednak niepotrzebnie sprowadziłem to do różnić między sudo a su, pomijając zupełnie alternatywne rozwiązania.

 

Ostatecznie zdecydowałem się na...

- Kluczyk z pamięci przenośnej, autoryzujący użytkownika, są gotowe moduły do PAM, więc nie powinno być problemów.

- Admin button - przycisk na klawiaturze autoryzujący roota, również ma to być realizowane przez PAM, obecnie jestem na etapie szukania gotowych modułów, jeśli nic nie znajdę to coś napiszę albo przerobie istniejący moduł.

- zablokowane hasło użytkownika

- zablokowane hasło roota

 

Od strony użytkowej będzie to wyglądało tak:

-przy logowaniu w GDM podpinam pamięć do usb z moją tożsamością w postaci klucza

-PAM loguje minę na konto użytkownika

-uruchamiam yumexa, sudo, su...

-klikam w admion-button.

-PAM wyraża zgodę na uruchomienie aplikacji

-odłączam pamięć od usb

-PAM wylogowuje użytkownika

 

Innymi słowy całkowicie odcinam się od standardowego sposobu autoryzacji.

Prawdopodobnie sudo i su zostaną ale w zmienionej formie.

Zauważyłem że w F11 sudo i su korzystają z PAM.

Autoryzacja na podstawie /etc/passwd jest tylko dodatkową warstwą, więc pewnie będzie można ją całkowicie pominąć i autoryzować na poziomie PAM za pomocą admin-button.

 

Sporo pracy przede mną dlatego odmeldowuje się już.

Dziękuje wszystkim za pomoc i przepraszam za zawracanie głowy.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...