dla początkujących
Bezpieczeństwo
Linuksa
Piotr Machej
ednym z podstawowych argumen- serwery są przechowywane w specjalnie
tów używanych przez zwolenników zabezpieczonych pomieszczeniach, do
JLinuksa w dyskusjach z użytkowni- których mają wstęp tylko upoważnione
kami Windows jest to, że Linux jest osoby. Niemniej, można utrudnić zada-
bezpieczny. Ale czy rzeczywiście tak jest? nie osobie, która chciałaby grzebać nam
Nie do końca. W przypadku każdego sys- w systemie pod naszą nieobecność. Dzięki
temu operacyjnego należy podjąć pewne temu włamanie się może zająć jej na tyle
kroki, które utrudnią zadanie ewentual- dużo czasu, że okaże się nieopłacalne.
nym czarnym charakterom.
Hasło systemowe
Przykład użycia Zazwyczaj pierwszą zaporą stojącą na
Nareszcie zaczęło się lato. Wydawałoby drodze do systemu jest hasło użytkowni-
się, że wszystkich wywieje nad wodę, ale ka. Od nas zależy, na ile ta zapora będzie
nie nadal wielu ludzi woli (niektórzy skuteczna. Przykładowo, jeśli nasz zna-
nie mają wyjścia) ślęczeć przed moni- jomy usiądzie przy naszym komputerze,
torami. Niektórym rosnąca temperatura może próbować odgadnąć hasło. Zacznie
podgrzewa krew i skłania do niezbyt od daty urodzenia, imion rodziców,
rozsądnych czynów. Jeden z takich osob- nazwiska, jak również od rzucających
ników postanowił zabawić się kosztem się w oczy napisów znajdujących się
mojego znajomego, włamując mu się na w okolicy. Z tego powodu nigdy nie należy
konto i przerabiając jego stronę WWW. tworzyć takich ani podobnych haseł.
Znajomy bardzo się zdziwił, zmartwił Włamywacz może również w jakiś
i zdenerwował (to łagodne określenia sposób uzyskać dostęp do pliku z hasłami
stanu faktycznego), po czym przybiegł (zazwyczaj zaszyfrowanymi), a następnie
do mnie domagając się, abym pomógł z pomocą odpowiedniego programu
mu się zemścić. Gdy już się uspokoił, odgadnąć użyte w nim hasła. Takie pro-
porozmawialiśmy chwilę. Okazało się, gramy stosują metody słownikowe (wy-
że włamanie mogło nie mieć miejsca, próbowywane są kolejne słowa znajdujące
CD/DVD
gdyby bardziej dbał o swój system. Czy się w olbrzymich plikach tekstowych), jak
Po uruchomieniu dystrybucji
można się dziwić, że ktoś nie skorzystał również brutalne ataki (program sprawdza
Linux+ Live CD/DVD można
przetestować omawiane z zaproszenia, jakim jest karteczka kolejne kombinacje znaków). Mamy kolej-
zagadnienia.
z hasłem wywieszona na monitorze sto- ną wskazówkę, jakich haseł nie używać
jącym w pokoju w akademiku? Tym bar- słów znajdujących się w słownikach
Na płycie CD/DVD
dziej, że znajomy korzysta z tego samego (zarówno polskich, jak i angielskich), jak
Na płycie CD/DVD znajdują się
hasła dosłownie wszędzie, nawet przy również prostych, krótkich zlepków liter.
programy do wykonywania kopii
logowaniu na konto bankowe (sic!). Dodatkowo, nie powinniśmy używać
zapasowych danych.
Zamiast mścić się na włamywaczu,
O autorze
po cichu podziękowaliśmy mu, że nie
Autor ukończył studia na kierunku
przelał sobie dosyć pokaznej sumki
Informatyka na Politechnice
zaoszczędzonej na wakacyjny wyjazd
Opolskiej. Z Linuksem (i ogólnie
i od razu zabraliśmy się za lepsze zabez-
systemami uniksowymi) ma
pieczanie systemu.
styczność od wielu lat. Obecnie
administruje dwoma sieciami
Bezpieczeństwo lokalne
blokowymi. Wolne chwile dzieli
Zawsze należy pamiętać o jednej zasadzie
pomiędzy jazdy konne, pływanie,
ten, kto ma fizyczny dostęp do kompu-
czytanie książek i mang oraz oglą-
Rysunek 1. Slang hakerski jest świetnym
tera, ma również dostęp do zainstalowa-
danie anime. Kontakt z autorem:
sposobem na tworzenie trudnych do
autorzy@lpmagazine.org nego na nim systemu i przechowywanych
odgadnięcia haseł
danych. Z tego powodu bardziej istotne
56
wrzesień 2004
dla początkujących
bezpieczeństwo Linuksa
a wpisujemy yqw3oi0 (klawisz [y] jest nad password=hasło
[h], [q] nad [a] i tak dalej). restricted
Oczywiście, każdy może wymyślić
własne hasło stworzone inną metodą. Oczywiście, zamiast hasło wpisujemy
Ważne jest, aby było łatwe do zapamię- odpowiadające nam hasło. Należy
tania i trudne do odgadnięcia. pamiętać, że umieszczone tu hasło jest
Należy pamiętać o tym, aby co jakiś widoczne na ekranie, więc nie powinno
czas zmieniać swoje hasło. Szczególnie, być takie samo, jak na którymkolwiek
jeśli podejrzewamy, że ktoś mógł zoba- koncie. Po zapisaniu zmian w pliku
Rysunek 2. W Internecie jest wiele
czyć, jak je wpisujemy lub w inny sposób należy uaktualnić dane w sektorze
serwisów dotyczących bezpieczeństwa,
je zdobyć wtedy należy je zmienić startowym. W tym celu wydajemy pole-
głównie w języku angielskim
natychmiast (dla przypomnienia służy cenie /sbin/lilo. Nie wolno tego kroku
do tego polecenie passwd w konsoli tek- pominąć, gdyż możemy mieć proble-
haseł bardzo krótkich rozsądne mini- stowej). Nie należy pozwalać, aby ktoś my z uruchomieniem systemu. Od tej
mum to 8 znaków. Bardzo złymi hasłami pod naszą nieobecność mógł korzystać pory, jeśli przy uruchamianiu systemu
są np. słowa ala i domek. z otwartej sesji. Przykładowo, w menu chcielibyśmy zmienić parametry wywo-
Skoro już wiemy, jakich haseł nie KDE istnieje opcja Zablokuj ekran. Jej łania jądra, to zostaniemy zapytani
należy używać, możemy się zastanowić, użycie powoduje, że aby ponownie roz- o hasło. Pominięcie w pliku /etc/lilo.conf
jakich można użyć. Przede wszystkim począć pracę, należy podać hasło zalogo- słowa restricted spowodowałoby, że
musi to być hasło łatwe do zapamię- wanego użytkownika. o hasło bylibyśmy pytani przy każdym
tania. Dzięki temu unikniemy pokusy uruchomieniu systemu, niezależnie,
zapisywania go na karteczce przyklejo- Hasło LILO i GRUB czy zmienialibyśmy parametry wywo-
nej do monitora (niestety, jest to bardzo Wydawałoby się, że mając dobre hasło, łania.
częsta praktyka). Przykładowo, wezmy jesteśmy zabezpieczeni przed użytkow- W przypadku GRUB-a postępujemy
hasło L,Om,Tjjz. Trudne do odgadnięcia? nikiem, który chciałby uzyskać dostęp do podobnie. Tym razem edytujemy plik
Wystarczająco ma 10 znaków, z czego naszego systemu. Nic bardziej błędnego. /boot/grub/grub.conf (w przypadku
część to wielkie i małe litery, a są też Osoba mająca fizyczny dostęp do kom- Auroksa w innych dystrybucjach plik
kropki i przecinki. Nie jest to słowo, więc putera może wcisnąć przycisk RESET na może znajdować się gdzie indziej). Na
atak słownikowy się nie uda. Złamanie obudowie. Jeśli korzystamy z menedże- jego początku dopisujemy linijkę o treści:
takiego hasła brutalnym atakiem jest ra ładowania LILO lub GRUB, to może password hasło.
możliwe, ale wymaga dosyć dużo czasu dopisać do parametrów wywołania jądra Po zapisaniu zmian, jeśli ktoś zechce
i silnego komputera. A co z łatwością słowo single (np. wpisując w tekstowym podczas uruchamiania modyfikować
zapamiętania? Chyba każdy zna ten cytat: LILO polecenie linux single). Spowoduje jakiekolwiek parametry, będzie musiał
Litwo, Ojczyzno moja, Ty jesteś jak zdro- to uruchomienie systemu w trybie jedne- podać hasło.
wie... Jak widać, wzięliśmy z tego cytatu go użytkownika i przyznanie intruzowi W przypadku obydwu plików (/etc/
pierwsze litery każdego słowa i znaki praw administratora bez konieczności lilo.conf i /boot/grub/grub.conf ) należy
przestankowe. W ten sposób można podawania hasła (sic!). W tym momencie upewnić się, że jedynie właściciel pliku
wykorzystać praktycznie dowolny cytat. może zrobić z systemem wszystko zmie- ma prawa do odczytu. Po co nam hasło,
Można spróbować innej metody. nić hasło administratora (passwd), innego jeśli każdy z użytkowników może je
Popatrzmy na takie hasło: 3,14jMl3k0. użytkownika (passwd nazwa_użytkownika), odczytać. Dlatego wykonujemy następu-
Również trudne do odgadnięcia, ale do zainstalować tylną furtkę (ang. backdoor), jące polecenia:
zapamiętania wystarczy nam popularne umożliwiającą mu ponowne uzyskanie
hasło reklamowe: Pij mleko. Litery Pi praw administratora (tym razem już bez chmod go-rwx /etc/lilo.conf
zamieniliśmy na 3,14, usunęliśmy spację, resetowania komputera), czy po prostu chmod go-rwx /boot/grub/grub.conf
a słowo mleko zaczęliśmy wielką literą skasować wszystkie pliki.
i dodatkowo zamieniliśmy e na 3 i o na Jak się przed tym ustrzec? Jeśli pod-
cyfrę 0. Ostatnie dwie podmiany liter czas instalacji dystrybucji zainstalowaliśmy
pochodzą z dosyć popularnego w Inter- LILO, to będziemy musieli zmodyfikować
necie slangu zwanego 1337 (leet, od elite). plik /etc/lilo.conf. W tym celu urucha-
Więcej na ten temat można poczytać miamy dowolny emulator terminala (np.
na stronach http://www.urbandictionary. Terminal lub Multi Gnome Terminal).
com/define.php?term=1337 i http://en. Musimy uzyskać uprawnienia admini-
wikipedia.org/wiki/Leet. stratora, więc korzystamy z polecenia
Jeszcze inna metoda, pozwalająca na su i podajemy hasło użytkownika root.
łatwe zapamiętanie haseł, to wciskanie Teraz możemy modyfikować plik konfi-
Rysunek 3. Listy kontroli dostępu można
klawiszy znajdujących się o poziom wyżej guracyjny w naszym ulubionym edytorze
już wykorzystywać w Linuksie, choć nadal
(lub niżej, lub o dwa w lewo itp.) od (np. vi /etc/lilo.conf lub mcedit /etc/
standardem jest kontrola na poziomie
klawisza, o którym myślimy. Przykłado- lilo.conf). Na początku pliku dopisujemy
pliku
wo, zapamiętujemy sobie słowo haselko, dwie linie o następującej treści:
57
www.lpmagazine.org
dla początkujących
systemu. Pamiętajmy jednak, że Linux jest i wykonywania. Zobaczmy to na prak-
systemem wieloużytkownikowym rów- tycznym przykładzie. W oknie terminalu
nocześnie może korzystać z niego wiele wpiszmy polecenie ls -l /etc/passwd.
osób. Założenie, że każdy, kto legalnie Powinniśmy uzyskać wynik podobny do
korzysta z systemu, jest grzecznym poniższego:
użytkownikiem, jest błędne. Często nie
S
wiemy, kim są inni użytkownicy i jakie -rw-r--r-- 1 root root
mają zamiary. Dlatego musimy uważać, 1966 cze 30 12:10 /etc/passwd
w jaki sposób chronimy dane umiesz-
czone w systemie. Pozwalają nam na to To, co nas w tej chwili interesuje, to ciąg
prawa dostępu do plików oraz możli- -rw-r--r-- oraz dwa wyrazy root. Pierw-
wość definiowania grup użytkowników. szy wyraz root wskazuje, że właścicielem
Rysunek 4. Do zarządzania
Niestety, domyślny system praw dostępu pliku /etc/passwd jest użytkownik root.
użytkownikami i grupami można również
do plików nie jest zbyt doskonały, ale Natomiast drugi mówi, że grupą, która
wykorzystać interfejsy graficzne
póki nie zostanie dopracowany system ma uprawnienia do tego pliku, jest grupa
list kontroli dostępu (ACL Access o nazwie root. Więcej o grupach dowie-
Bliższe objaśnienie tych poleceń znajduje Control List), musi nam wystarczyć. my się w dalszej części artykułu. Na razie
się w dalszej części artykułu, w rozdziale skupimy się na ciągu -rw-r--r--, określają-
Ochrona plików. Prawa dostępu cym uprawnienia do pliku.
Na początku trzeba przyzwyczaić się Pierwszy myślnik tego ciągu wskazu-
Hasło BIOS-u do myśli, że Linux wszystko traktuje je, że /etc/passwd jest zwykłym plikiem.
Poczyniliśmy już tyle przygotowań, jako pliki. Zapisany na dysku obrazek W przypadku katalogów w tym miejscu
a jednak nadal można dosyć łatwo spe- czy dokument tekstowy są plikami (to znajduje się litera d, ale można spotkać
netrować nasz system. Wystarczy, że jest naturalne), ale plikiem jest również się jeszcze z literami b (urządzenie bloko-
ktoś przyniesie swoją dyskietkę startową katalog i, co ciekawsze, urządzenie pod- we) i c (urządzenie znakowe).
i wskaże odpowiednią partycję z syste- łączone do komputera. Przykładowo, Następne trzy znaki to prawa
mem. Może również skorzystać z dowol- pierwszy dysk twardy to plik /dev/hda, przyznane właścicielowi pliku (w tym
nej dystrybucji uruchamianej z płyty CD a umieszczona na nim partycja to /dev/ przypadku użytkownikowi root). Ma
lub DVD po jej uruchomieniu może hda1. Z kolei napędowi CD-ROM odpo- on możliwość czytania pliku (r Read)
podmontować naszą partycję z syste- wiada plik /dev/cdrom. Dla nas oznacza i zapisywania go (w Write). Nie ma
mem i wprowadzić odpowiednie zmiany to tyle, że kontrolując prawa dostępu do natomiast możliwości wykonywania pliku
(np. zmienić hasło administratora). plików możemy równocześnie kontrolo- nie potrzebuje jej, gdyż plik /etc/passwd
I na to jest sposób. W każdym kom- wać dostęp do wielu urządzeń. nie jest programem ani skryptem. Gdyby
puterze mamy możliwość założenia Uprawnienia do plików możemy był, to na trzeciej pozycji, zamiast myślni-
hasła, o które jesteśmy pytani podczas przydzielać właścicielowi pliku, grupie ka, znajdowałaby się litera x (eXecute).
uruchamiania komputera lub przy próbie oraz wszystkim pozostałym. Możliwe Analogicznie, kolejne trzy znaki okre-
zmiany konfiguracji. W naszym przypad- uprawnienia to prawo do odczytu, zapisu ślają uprawnienia przysługujące grupie
ku powinno wystarczyć wyłączenie moż-
liwości startowania systemu z dyskietki
lub płyty oraz zabezpieczenie hasłem
możliwości zmian w konfiguracji. Ze
względu na różnorodność BIOS-ów, naj-
lepiej w tym celu zapoznać się z instruk-
cją dołączoną do komputera.
Włamywacz, który chciałby ominąć
to zabezpieczenie, musiałby otworzyć
obudowę komputera w celu zresetowa-
nia pamięci CMOS (zależnie od modelu
płyty, można tego dokonać wyciągając
baterię lub korzystając z odpowiedniej
zworki na płycie głównej). Może też
skorzystać z tzw. hasła uniwersalnego,
ale znalezienie hasła pasującego akurat
do naszej wersji BIOS nie jest takie
proste.
Ochrona plików
Rysunek 5. O wykrytych lukach w bezpieczeństwie możemy się również dowiedzieć
Rozważaliśmy dotąd działania osoby,
z polskich serwisów
która próbuje uzyskać dostęp do naszego
58
wrzesień 2004
dla początkujących
bezpieczeństwo Linuksa
umask. Jeśli wywołamy je w postaci
umask -S u=rwx,g=,o =, to utworzone od
tego momentu katalogi będą miały prawa
-rwx------, natomiast pliki: -rw-------.
Warto to polecenie dopisać do jednego ze
skryptów uruchamianych podczas logo-
wania, np. ~/.bash_profile. Dokonujemy
tego otwierając go w naszym ulubionym
edytorze tekstu (np. vi ~/.bash_profile)
i dopisując na jego końcu linię o treści:
umask -S u=rwx,g=,o=.
Grupy
Wiemy już, jak chronić pliki. Czasem
chcielibyśmy, aby określone osoby
miały do nich dostęp, a inne nie.
W poprzednim rozdziale mówiliśmy
o przyznawaniu uprawnień do plików
grupie użytkowników. Niestety, dodawa-
Rysunek 6. Osobom mniej obeznanym z językiem angielskim z pewnością przyda się nie użytkowników do grup jest możliwe
polskie tłumaczenie wiadomości z BugTraq tylko z uprawnieniami administratora,
co czyni tę technikę nieco niewygodną.
(w tym przypadku grupie root) ma ona uprawnienia wszystkich plików i kata- Niemniej, warto ją poznać.
tylko prawo do odczytu pliku. Takie same logów, możemy dokonać tego jednym Załóżmy, że w systemie mamy trzech
prawa mają wszyscy pozostali użytkownicy, poleceniem: chmod -R go-rwx ~/. W tym użytkowników: jacek, wacek i placek.
co jest określone przez ostatnie trzy znaki. przypadku użyliśmy dodatkowej opcji Użytkownicy jacek i wacek pracują
Należy zwrócić uwagę, że w przypad- -R, która sprawia, że prawa są ustawia- nad wspólnym projektem, dlatego też
ku katalogów prawa dostępu mają nieco ne rekursywnie dla wszystkich plików potrzebują katalogu, w którym mogliby
inne znaczenie: prawo odczytu pozwala i katalogów. je przechowywać. Postanowili, że umiesz-
na odczyt zawartości katalogu, prawo Co się jednak dzieje, gdybyśmy chcie- czą je w podkatalogu projekt/ katalogu
zapisu pozwala na tworzenie i kasowa- li, aby inni użytkownicy mieli dostęp do domowego użytkownika jacek. Nie chcą
nie plików w katalogu, natomiast prawo pewnych plików w naszym katalogu? jednak, aby użytkownik placek mógł
wykonywania pozwala na wchodzenie Przykładowo, chcemy stworzyć własną tam zaglądać. Poszli do administratora
do katalogu (np. komendą cd). stronę WWW i umieścić ją w katalogu i poprosili go o założenie odpowiedniej
Jak to wykorzystać w praktyce? ~/public_html/. Do tego katalogu muszą grupy. Administrator akurat miał chwilę
Omówmy to na przykładzie naszego mieć dostęp inni użytkownicy, a co naj- czasu, więc ze swojego konta (jak zwykle
katalogu domowego. Przede wszystkim mniej serwer WWW. Najlepiej ustawić pracował na koncie zwykłego użytkow-
powinniśmy zadbać, aby nikt nie miał następujące prawa: chmod u=rwx,go=x nika) wydał polecenie su i wpisał swoje
dostępu do naszych danych. W tym celu ~/public_html/. Tym razem skorzystaliśmy hasło. Następnie utworzył nową grupę
zmniejszamy prawa dostępu do naszego ze znaku =, który powoduje ustawienie o nazwie projekt: groupadd projekt. Jej
katalogu poleceniem chmod go-rwx ~/. dokładnie takich praw, jakie podaliśmy. istnienie można sprawdzić przegląda-
Składnia polecenia może wydawać się W naszym przypadku użytkownik (u) jąc plik /etc/group, np. poleceniem cat
trudna, ale szybko się do niej przyzwy- będzie miał wszystkie prawa do katalogu, /etc/group. Teraz pozostało mu dopisanie
czaimy. Po chmod (nazwa polecenia natomiast grupa i inni (go po przecinku) użytkowników do grupy. Dokonał tego
zmieniającego uprawnienia do pliku) będą mogli tylko wchodzić do katalogu. poleceniami: usermod -G projekt jacek
mamy litery go. Oznaczają one, że zmie- Umieszczając w nim pliki musimy zadbać, oraz usermod -G projekt wacek. Polecenie
niamy uprawnienia dla grupy (g group) aby miały prawa -rwxr--r--, natomiast takie powoduje, że wskazany użytkownik
i wszystkich pozostałych użytkowników podkatalogi powinny mieć prawa -rwx- jest przypisywany do grup wymienionych
(o others). Następujący po niej znak -x--x. Na koniec musimy zrobić jeszcze w opcji -G. Jeśli należał do innych, niewy-
minusa oznacza, że usuwamy upraw- jedną rzecz, a mianowicie ustawić prawo mienionych grup, to jest z nich usuwany.
nienia określone następnymi literami. wejścia do naszego katalogu domowego Z tego powodu lepiej wywołać polecenia
W tym przypadku usuwamy uprawnienia dla innych użytkowników. Jeśli nie wyko- groups jacek i groups wacek zarówno
do odczytu (r), zapisu (w) i wykonywania namy polecenia chmod go+x ~/, to nie będą przed, jak i po użyciu polecenia usermod.
(x). Ostatni parametr to nazwa pliku lub oni mogli uzyskać dostępu do plików Pozwoli to na sprawdzenie, do jakich grup
katalogu, którego dotyczy polecenie. zawartych w katalogu ~/public_html/. należą wskazani użytkownicy, oraz czy
W analogiczny sposób powinniśmy Dużym ułatwieniem w zarządza- wykonanie polecenia dało oczekiwany
postąpić z katalogami i plikami umiesz- niu prawami dostępu jest ustawienie przez nas skutek.
czonymi w naszym katalogu domowym. domyślnych praw nadawanych plikom Teraz już użytkownik jacek może
Jeśli jesteśmy pewni, że chcemy zmienić i katalogom. Służy do tego polecenie w swoim katalogu utworzyć podkatalog
59
www.lpmagazine.org
dla początkujących
projekt/ (poleceniem mkdir ~jacek/ SUID. Gdyby znajdowała się na pozycji
projekt/). Następnie musi wskazać, odpowiadającej prawu wykonywania
że katalog ten należy do niego i do przez grupę, to oznaczałoby to, że usta-
grupy projekt. Czyni to poleceniem wiony jest bit SGID. Powód ustawienia
chown jacek:projekt ~jacek/projekt/. bitu SUID dla programu passwd jest
Powinien jeszcze zadbać, aby członko- prozaiczny plik /etc/passwd, w którym
wie grupy mogli swobodnie pracować przechowywane są informacje o użyt-
w tym katalogu. W tym celu ustawia prawa kownikach, jest dostępny do odczytu dla
dostępu poleceniem chmod ug=rwx,o-rwx wszystkich, ale zapisywać w nim może
Rysunek 7. Nawet serwery NASA nie były
~jacek/projekt/. Jeśli dotychczas tego nie tylko użytkownik root. Ponieważ każdy
w stanie oprzeć się włamywaczom
zrobił, musi również umożliwić wstęp z użytkowników musi mieć możliwość
do swojego katalogu, o czym mówiliśmy zmiany swojego hasła, więc konieczne
w poprzednim rozdziale (służy do tego jest wykonywanie programu passwd ograniczyć wygodę korzystania z sys-
polecenie chmod o+x ~jacek/). z uprawnieniami administratora. temu może się zdarzyć, że większość
Czas zacząć pracę. Jeśli teraz któryś Czy takie pliki mogą nam zaszko- funkcji będzie można wykonać tylko
z użytkowników jacek lub wacek utwo- dzić? Tak. Każdy plik z ustawionym z uprawnieniami użytkownika root.
rzy nowy plik w tym katalogu (np. bitem SUID to potencjalne zagrożenie.
poleceniem touch plik1), to jako grupa Jeśli będzie w nim jakiś błąd, to może Praca z uprawnieniami
właściciela pliku będzie podana (zależnie to doprowadzić do tego, że niegrzeczny administratora
od systemu) grupa o nazwie users lub użytkownik uzyska na stałe uprawnienia Podczas instalacji dystrybucji Linuksa
o nazwie takiej, jak nazwa użytkownika. właściciela pliku. Niemniej, część plików mamy możliwość ustalenia hasła admi-
A nam przecież zależy na tym, aby jacek z ustawionymi bitami SUID lub SGID jest nistratora (użytkownika root) oraz utwo-
i wacek mogli wspólnie korzystać z tych konieczna do funkcjonowania systemu. rzenia jednego lub więcej kont zwykłych
plików powinny one należeć do grupy W przypadku innych (np. polecenie użytkowników. Zawsze należy pamiętać,
projekt. Dlatego przed rozpoczęciem mount) jest to raczej kwestia wygody aby unikać pracy z uprawnieniami admini-
pracy w tym katalogu każdy z użytkow- w używaniu systemu. stratora. Jeśli jest to możliwe, powinniśmy
ników powinien wydać polecenie newgrp Listę znajdujących się w systemie pracować na koncie zwykłego użytkow-
projekt. Od tej pory tworzone przez niego plików z ustawionymi wspomnianymi nika, a konta root (lub innego uprzywile-
pliki będą miały ustawioną grupę właści- bitami możemy uzyskać wydając jako jowanego) używać tylko w wyjątkowych
ciela projekt. Warto również od razu usta- administrator następujące polecenie: find przypadkach. Takie przypadki to insta-
wić opcję umask: umask ug=rwx,o=, dzięki / -perm +6000 > ~/spis_suidy_sgidy.txt lacja oprogramowania lub dodawanie
czemu właściciel i grupa będą mieli pełne Po dłuższym oczekiwaniu (polece- nowych użytkowników. Zasady tej należy
prawa do tworzonych plików, natomiast nie to przeszukuje cały system plików przestrzegać nawet wtedy, gdy jesteśmy
inni (np. użytkownik placek) nie. w poszukiwaniu plików z ustawio- jedynymi użytkownikami komputera.
nym bitem SUID lub SGID), w pliku Powód jest prosty konto administrato-
Specjalne prawa ~/spis_suidy_sgidy.txt zostaną umiesz- ra daje nieograniczone możliwości, więc
Tym, co nie daje spokoju wielu admi- czone nazwy plików spełniających ten jedna nieprzemyślana komenda (lub
nistratorów, to programy z ustawionym warunek. Można się zdziwić ich liczbą polecenie wydane w złym katalogu) może
bitem SUID (Set User ID) lub SGID oprócz narzędzi administracyjnych, spowodować bardzo duże straty, z utratą
(Set Group ID). Ich istnienie powoduje, z bitów SUID często korzystają gry. wszystkich danych włącznie.
że (w skrócie) program nie jest wyko- Podczas administracji systemem należy Nie musimy logować się na konto
nywany z uprawnieniami użytkownika zwrócić baczną uwagę na to, czy pliki root, gdyż możemy uzyskać jego przy-
uruchamiającego polecenie, lecz z upraw- te nie zostały przez kogoś podmienione. wileje korzystając z polecenia su. Po jego
nieniami (odpowiednio) właściciela pliku Taka podmiana może świadczyć o sku- wydaniu zostaniemy zapytani o hasło
lub jego grupy. Sztandarowym przykła- tecznym włamaniu na serwer. Możemy użytkownika root. Jeśli podamy je pra-
dem pliku z ustawionym bitem SUID jest też, w miarę możliwości, pozdejmować widłowo, to od tej chwili aż do wydania
program passwd. Najłatwiej to sprawdzić bity SUID i SGID. Rozdział Polecenie polecenia exit pracujemy z uprawnienia-
wydając polecenie ls -l `which passwd` sudo zawiera opis jednej z metod zastą- mi tego użytkownika. Jeśli zależy nam
.
Powinniśmy uzyskać wynik zbliżony do pienia funkcjonalności bitów SUID. na tym, aby nie tylko mieć odpowiednie
poniższego: Samo zdejmowanie bitów dokonujemy przywileje, ale również dostęp do zmien-
znanym nam już poleceniem chmod nych środowiskowych wykorzystywa-
S
-r-s--x--x 1 root root (np. dla przypadku programu /bin/ nych przez administratora, to musimy
16336 lut 13 2003 /usr/bin/passwd mount): jako argument polecenia wpisać myślnik:
su -. Dzięki temu możemy również korzy-
Należy zwrócić uwagę na literę s znaj- chmod u-s /bin/mount stać ze zdefiniowanych przez tego użyt-
dującą się na pozycji, gdzie zwykle jest kownika aliasów i ścieżek dostępu.
zapisywane prawo do wykonywania (x) Analogicznie, w przypadku bitu SGID, Poleceniem su możemy nie tylko stać
pliku przez użytkownika. To właśnie zamiast u-s stosujemy g-s. Należy pamię- się administratorem, ale również dowol-
ona mówi nam, że plik ma ustawiony bit tać, że takie zmiany mogą znacząco nym użytkownikiem wystarczy podać
60
wrzesień 2004
dla początkujących
bezpieczeństwo Linuksa
jego nazwę jako argument i znać odpo- User_Alias USERS = jacek, wacek w naszym pliku linia wyglądałaby tak
S
wiednie hasło. Przykładowo, jeśli znamy Cmnd_Alias NARZEDZIA = /bin/mkdir, (pamiętajmy, edytujemy poleceniem
S
hasło użytkownika gerard w naszym sys- /bin/cp, /bin/netstat, visudo!):
temie, to możemy użyć odpowiednio pole- /sbin/ifconfig, /usr/bin/make
ceń su gerard i su - gerard. Jeśli polecenie wacek ALL=NOPASSWD:NARZEDZIA
su wywołujemy z konta administratora, to Pierwsza z tych linii tworzy alias USERS,
nawet nie musimy podawać hasła użyt- obejmujący użytkowników jacek i wacek, Odpowiednie ustawienie pliku /etc/
kownika. Jest to kolejny przykład tego, jak natomiast druga tworzy alias NARZEDZIA, sudoers pozwala nam na zdjęcie niezbyt
potężny jest administrator systemu. obejmujący szereg komend, które mają być bezpiecznych bitów suid z niektórych
Jeśli chcemy wykonać tylko pojedyn- dostępne dla użytkownika wacek. Następ- programów (w tym przypadku możemy
cze polecenie z uprawnieniami innego nie dodajemy trzy linie odpowiadające zdjąć je z programów /bin/mount i /bin/
użytkownika, możemy podać je od razu za właściwe przypisanie użytkownikom umount o ile tylko nie chcemy, aby inni
jako argument polecenia su. Przykładowo, komend, które mogą wykonywać: użytkownicy też mieli do nich dostęp).
jeśli chcemy sprawdzić, jakie połączenia Zapewnia to również większą kontrolę
są nawiązane z i do naszego komputera, placek ALL=(ALL) ALL nad wykorzystywaniem uprawnień przez
S
możemy wydać polecenie netstat -ntp. USERS localhost=/bin/mount użytkowników, gdyż wszystkie próby
Polecenie to wyświetla również nazwę /mnt/cdrom,/bin/umount /mnt/cdrom użycia polecenia sudo są zapisywane
programu, który odpowiada za dane wacek ALL=NARZEDZIA w dzienniku systemowym.
połączenie. Nie zobaczymy jednak nazw
programów, które do nas nie należą. Wygląda skomplikowanie? Zaraz wszyst- Zakończenie
W takim przypadku można skorzystać ko wyjaśnimy. Najpierw pierwsza linia. Opisane w tym artykule metody
z su wydając polecenie: su -c "netstat Mówi ona, że użytkownik placek może na pozwalają na podstawowe zabezpie-
-ntp". Po jego wykonaniu od razu wróci- dowolnej maszynie (pierwsze słowo ALL) czenie systemu. Pracując z komputerem
my do naszej powłoki. wykonywać z uprawnieniami dowolnego należy zdawać sobie sprawę, że nigdy
użytkownika (słowo ALL w nawiasie) nie będziemy mogli powiedzieć "mój
Polecenie sudo wszelkie komendy (ostatnie słowo ALL). system jest bezpieczny i nikt się do niego
Polecenie su jest wygodne, ale do Ze swoich uprawnień korzysta poprze- nie włamie". Nie ma też sensu popadać
korzystania z niego należy znać hasło dzając komendę poleceniem sudo. Przy- w paranoję. To, jakich metod zabezpie-
administratora. Wiemy już, że uzyska- kładowo, wykonanie przez użytkownika czenia użyjemy, musi przede wszystkim
nie dostępu do konta użytkownika placek polecenia id powinno dać wynik zależeć od wagi danych, jakie chcemy
root jest praktycznie równoznaczne podobny do tego: chronić. Zupełnie inne zabezpieczenia
z przejęciem kontroli nad całym syste- będą wymagane w przypadku odcię-
S
mem. Musimy bardzo uważać, komu uid=508(placek) gid=510(placek) tego od Internetu komputera biurowe-
udzielamy takiego przywileju. Jeśli grupy=510(placek) go, a inne w przypadku serwera sieci
chcemy konkretnym osobom pozwolić osiedlowej czy głównego komputera
na wykonywanie niektórych poleceń a polecenie sudo id spowoduje, że zosta- systemu bankowego. Może się zdarzyć,
z uprawnieniami administratora, możemy niemy zapytani o hasło. Po podaniu hasła że nawet nie będziemy chcieli wykorzy-
to zrobić w inny, bezpieczniejszy sposób. użytkownika placek (tak, hasła użytkow- stać wszystkich z opisanych w artykule
Pomoże nam w tym polecenie sudo i jego nika, a nie administratora!) powinniśmy technik. Może też być tak, że przedsta-
plik konfiguracyjny /etc/sudoers. zobaczyć mniej więcej taki wynik: wione techniki nie będą wystarczające
Załóżmy, że użytkownikowi jacek i będziemy musieli sięgnąć po bardziej
S
zechcemy dać możliwość montowania uid=0(root) gid=0(root) grupy=0(root), zaawansowane narzędzia. Gorąco zachę-
S
i odmontowywania napędu CD-ROM, 1(bin),2(daemon),3(sys),4(adm), cam do bliższego zapoznania się z tema-
natomiast użytkownik wacek, jako prawa 6(disk),10(wheel) tem bezpieczeństwa, gdyż aby dobrze
ręka administratora, będzie miał oprócz zabezpieczyć system, potrzebny jest
tego dostęp do szeregu poleceń, takich Jak widać, rzeczywiście uzyskujemy administrator świadomy zagrożeń.
jak ifconfig i netstat. Ostatni z użytkow- przywileje administratora. W podobny
ników, placek, to alter ego administratora sposób działają pozostałe linie, które
chcemy, aby miał możliwość wykony- dopisaliśmy do pliku /etc/sudoers.
W Internecie:
wania wszystkich komend. W ich przypadku pominęliśmy określenie,
" Definicja hasła Leet w Wikipedii:
W tym celu musimy zmodyfikować z jakimi prawami mogą być wykonywane
http://en.wikipedia.org/wiki/Leet
plik /etc/sudoers. Najbezpieczniej jest polecenia, więc będą one wykonywane
" Definicja hasła Leet w UrbanDictionary:
dokonać tego z pomocą polecenia visudo z prawami użytkownika root.
http://www.urbandictionary.com/
(należy je wywołać z uprawnieniami Jeśli chcemy, aby użytkownik mógł
define.php?term=1337
administratora), które zadba, aby podczas wykonywać określone polecenia bez
" Strona magazynu Hakin9:
edycji pliku nie doszło do konfliktów konieczności podawania hasła po użyciu
http://www.haking.pl/
(gdyby ktoś inny próbował akurat edyto- sudo, to w pliku /etc/sudoers należy
" Serwis Hacking.pl:
wać ten plik). W tym pliku umieszczamy w jego linii dodać opcję NOPASSWD.
http://www.hacking.pl/
następujące linie: Przykładowo, dla użytkownika wacek
61
www.lpmagazine.org
Wyszukiwarka
Podobne podstrony:
2004 01 Pisanie bezpiecznych programów [Programowanie]Bezpieczenstwo w Linuksie Podrecznik?ministratora blinpa2004 04 Fonty w Linuksie [Administracja]PHP PHP i bezpieczne logowanie 12 20042004 01 Loop AES – szyfrowane systemy plików [Bezpieczenstwo]Bezpieczenstwo sieci w Linuksie Wykrywanie atakow i obrona przed nimi za pomoca iptables, psad i fwsBezpieceństwo militarne PolskiAdministracja bezpieczenstwa stDobór bezpieczników topikowych138 142 linuks dla poczatkujacychZagrożenia bezpieczeństa informacjiBezpieczeństwo państwa instytucje bezpieczeństwawięcej podobnych podstron