840 likes | 1.04k Views
1. Monitorowanie pracy systemu vmstat. Podaje statystyczną informację o: stanie procesów użyciu pamięci użyciu swap blokowych operacjach we/wy przerwaniach przełączaniu kontekstu użyciu procesora. 2. Monitorowanie pracy systemu vmstat. vmstat [-n] [delay [count]]
E N D
1 Monitorowanie pracy systemu vmstat • Podaje statystyczną informację o: • stanie procesów • użyciu pamięci • użyciu swap • blokowych operacjach we/wy • przerwaniach • przełączaniu kontekstu • użyciu procesora
2 Monitorowanie pracy systemu vmstat • vmstat [-n] [delay [count]] • wyświetla count razy informację co czas delay sekund. Opcja n powoduje wyświetlenie nagłówka tylko raz • pierwszy raz wyświetla informację statystyczną od czasu uruchomienia systemu, potem za okres od ostatniego wyświetlenia
3 Monitorowanie pracy systemu vmstat stan procesów - procs r – procesy działające lub czekające na uruchomienie b – procesy w stanie sleep z wyłączonymi przerwaniami
4 Monitorowanie pracy systemu vmstat użycie pamięci – memory (domyślnie w kB) swpd – ilość pamięci zapisanej na dysku free – ilość wolnej pamięci fizycznej buff – ilość pamięci zajętej przez bufory
5 Monitorowanie pracy systemu vmstat użycie swap – swap (domyślnie w kB/s) si – ilość pamięci odczytywanej z dysku so – ilość pamięci zapisywanej na dysk
6 Monitorowanie pracy systemu vmstat Operacje we/wy – io (domyślnie w blokach/s) bi – ilość bloków wysłanych do urządzeń blokowych bo – ilość bloków odczytanych z urządzeń blokowych
7 Monitorowanie pracy systemu vmstat Przerwania i przełączanie kontekstu – system in – ilość przerwań na sekundę cs – ilość przełączeń kontekstu na sekundę
8 Priorytet procesu • Priorytet – zakres -20 do 20, domyślnie 0, ustawiany funkcją setpriority(). • Nice – zakres -20 do 19, domyślnie 10. • Domyślne i graniczne wartości priority i nice różne w różnych systemach, zawsze mniejsza wartość to ważniejszy proces. • Procesy o niższym priority + nice uprzywilejowane przy przydziale czasu procesora. • Program nice uruchamia proces z innym nice, renice zmienia nice istniejącego procesu. • Zwykły użytkownik może tylko zwiększyć nice (spowolnić proces)
9 Monitorowanie pracy systemu top • Monitoruje w trybie rzeczywistym • stan systemu • najbardziej aktywne procesy pozwala na interaktywne manipulowanie procesami
10 Monitorowanie pracy systemu top Ważniejsze opcje: d – czas między kolejnymi próbkami (domyślnie 5 sekund) p – monitoruj procesy z podanym PID (do 20 opcji) s – uruchom w trybie secure (pewne komendy zablokowane, można użyć w /etc/toprc) n – wykonaj n iteracji i zakończ b – pracuj w tle (batch) – np. dla przekazania wyników do innej komendy)
11 Monitorowanie pracy systemu top top – czas systemowy, czas od uruchomienia systemu, liczba aktywnych użytkowników, liczba uruchomionych procesów w ostatnich 1, 5 i 15 minutach Tasks – liczba procesów od ostatniego próbkowania – running, sleep, stopped, zombie CPU(s) – czas procesora (w %) zużyty na procesy użytkownika, jądra, idle. Podaje też czas procesów z nice dodatnim. mem – pamięć dostępna, użyta, wolna, użyta na bufory swap – wielkość swap, ilość użytej i wolnej przestrzeni
12 Monitorowanie pracy systemu top PID – PID procesu PPID – PID procesu nadrzędnego UID – UID właściciela procesu USER – nazwa właściciela procesu PRI – priorytet procesu NI – wartość nice procesu (ujemne wartości mają niższy priorytet) SIZE – suma wielkości obszaru kodu, danych i stosu w kB) RSS – wielkość pamięci fizycznej użytej przez proces SHARED – wielkość użytej pamięci współdzielonej
13 Monitorowanie pracy systemu top STAT – stan procesu: S- uśpiony (sleep) D- uśpiony z wyłączonymi przerwaniami R – działający Z – zombie T – zatrzymany Po symbolu stanu może wystąpić: < - ujemne nice N – dodatnie nice w - swapped zombie – procesy nieprawidłowo zamknięte przez proces nadrzędny. Usunie je init po zakończeniu procesu nadrzędnego
14 Monitorowanie pracy systemu ps Polecenie ps wyświetla stan procesów Akceptuje opcje w stylu: Unix98 – poprzedzone znakiem '-', mogą być grupowane BSD – nie poprzedzone znakiem '-', mogą być grupowane GNU – poprzedzone znakami '--', nie mogą być grupowane Opcje w różnych stylach można mieszać
15 Monitorowanie pracy systemu ps • Prosta selekcja procesów ps ax – Unix98 ps -e – BSD • Selekcja procesów po nazwie programu (-C), PID (-p, p), tty (-t), wskazanego użytkownika (U, -U, -G) Format wyświetlania long (l, -l), pełny (-f), zdefiniowany przez użytkownika (o, -o)
16 Monitorowanie pracy systemu ps Modyfikowanie wyświetlania: -H – pokaż hierarchię procesów w, -w - szeroki wydruk (załamie, a nie obetnie linie) e – pokaż otoczenie procesu
17 Monitorowanie pracy systemu ps Przykłady użycia: ps -e wyświetl wszystkie procesy (BSD) ps ax wyświetl wszystkie procesy (Unix98) ps axlw Wyświetl wszystkie procesy, rozszerzony format, szeroki wydruk ps -U root -u root -N wyświetl wszystkie procesy za wyjątkiem procesów użytkownika root ps -eo pid,tt,user,fname,tmout,f,wchan wyświetl wszystkie procesy z zadanym formacie
18 Monitorowanie pracy systemu pstree Wyświetla hierarchię procesów Użyteczne opcje: -p – wyświetl UID procesu -l – szeroki wydruk (załamuj linie, jeśli potrzeba)
19 Kopie bezpieczeństwa • Konfiguracje w kartotece /etc • Podstawowe elementy systemu - /bin /lib /boot /sbin • Pozostałe elementy systemu - /usr • Zmienne elementy systemu (np. logi, kolejki) /var • Kartoteki użytkowników /home • Dane aplikacji – specyficzne dla nich lokalizacje
20 Kopie bezpieczeństwa • Procedury wykonywania kopii zapasowych i odtwarzania – spisać i wydrukować • Sposób i częstotliwość wykonywania kopii bezpieczeństwa dopasowany do specyfiki instalacji • Procedury na wypadek fizycznego zniszczenia sprzętu (np. serwer wraz z nietypowym napędem taśmy)
21 Kopie bezpieczeństwa • dump – kopiuje na taśmę magnetyczną (opcjonalnie do zbioru) filesystem (lub jego fragment) • kopie całkowite lub przyrostowe • informacje o dumpowanych filesystemach w /etc/dumpdates • Typowe użycie dump -0u -f /dev/st0 /usr
22 Kopie bezpieczeństwa • Dla zminimalizowania liczby taśm (czasu potrzebnego do odtworzenia systemu): • rozpocząć od dump poziomu 0 (powtórzyć okresowo, np. co miesiąc): /sbin/dump -0u -f /dev/st0 /usr • w kolejnych dniach kopie przyrostowe (zmodyfikowany algorytm wież Hanoi): 3 2 5 4 7 6 9 8 9 9 ... • co tydzień wykonać dump poziomu 1 i kontynuować dumpy od poziomu 3
23 Kopie bezpieczeństwa • Przechowywanie nośników • inne pomieszczenie, budynek, szafa ogniotrwała itp. • dump poziomu 0 przechowywany długo (bezterminowo?) • dumpy przyrostowe – kilka zestawów taśm używanych cyklicznie, okresowo wymienianych • Przejrzysty, jednoznaczny i sformalizowany sposób opisywania nośników
24 Kopie bezpieczeństwa • Odtwarzanie systemu – restore • utworzyć partycję, np.: mke2fs /dev/sda1 • zamontować, np.: mount /dev/sda1 /mnt • zmienić bieżącą kartotekę: cd /mnt • odtworzyć filesystem z dump poziomu 0:restore rf /dev/st0 • jeśli były wykonywane dumpy przyrostowe, odtworzyć je w kolejności wykonywania • odtworzyć w podobny sposób pozostałe filesystemy Odtwarzanie partycji root – uruchomić komputer z dysku instalacyjnego w trybie rescue
25 Kopie bezpieczeństwa • Odtwarzanie wybranych zbiorów – restore w trybie interaktywnym: restore -i • poleceniami cd i ls wyszukać zbiory do odtworzenia • poleceniami add i delete utworzyć listę zbiorów i kartotek do odtworzenia • poleceniem restore odtworzyć zbiory z listy
26 Kopie bezpieczeństwa mt – program do manipulowana napędem taśmy magnetycznej mt fsf n – przewiń taśmę o n zbiorów do przodu mt bsf n – przewiń taśmę o n zbiorów w tył mt status - wyświetl status napędu mt rewind – przewiń do początku mt rewoffl – przewiń do początku i rozładuj napęd
27 Kopie bezpieczeństwa • Dump przewidziany jest do wykonywania kopii bezpieczeństwa całych filesystemów • kopie podkartotek lub wybranych zbiorów często wygodniej robić programem tar • Kopie robocze niewielkiej ilości zbiorów można robić poprzez cp -r -p (z podkartotekami, zachowując właściciela, prawa zbiorów i znaczniki czasu)
28 Analiza logów systemowych • Duża ilość informacji, o różnym poziomie ważności • Zapisywane samodzielnie przez aplikacje lub poprzez syslogd • Dla zwiększenia bezpieczeństwa logi można zapisywać na innym serwerze (syslogd -r) • Typowo w kartotece /var/log
29 Analiza logów systemowych • Konfiguracja daemona syslogd w zbiorze /etc/syslog.conf • Syslogd dzieli komunikaty na klasy: auth (security), authpriv, cron, daemon, kern, lpr, mail, mark, news, syslog, user, uucp, local0 – local7 • Komunikaty w ramach klasy mają różny priorytet: debug, info, notice, warning (warn), error (err) , crit, alert, emerg (panic) • err, warn, panic, security – wycofywane, nie używać
30 Analiza logów systemowych • W zbiorze /etc/syslog.conf znajdują się listy klas i priorytetów komunikatów oraz miejsce ich zapisywania, np.: kern.* /dev/console authpriv.* /var/log/secure authpriv.* @logserw.akuku.pl local1.* /var/log/router *.info;authpriv.none;local1.none /var/log/messages
31 Analiza logów systemowych • Aby uniknąć przepełnienia filesystemu, daemon logrotated okresowo robi ich kopie, poddaje kompresji, usuwa stare wersje, wysyła mailem pod wskazane adresy. • Konfiguracja logrotated w zbiorach /etc/logrotate.conf i zbiorach w kartotece /etc/logrotated.d
32 Analiza logów systemowych Przy analizie logów pomocne mogą być polecenia: grep wzorzec plik wyszukaj linie zawierające wzorzec grep -v wzorzec plik – wyszukaj linie nie zawierające wzorca wc – oblicz liczbę wierszy, wyrazów i znaków w zbiorze uniq – pomiń powtarzające się wiersze uniq -c – jak wyżej, ale podaj liczbę wystąpień sort -k pos1[pos2] sortuje linie według klucza od znaku pos1 do pos2 włącznie (liczone od 1)
33 Analiza logów systemowych expand – zamień znaki tab na spacje colrm [startcol [endcol]] – usuń znaki w zbiorze od kolumny startcol do endcol, liczone od 1 ed – edytor liniowy, np. do zamiany łańcuchów vi – edytor ekranowy, makropolecenia do modyfikowania zawartości zbioru
34 Analiza logów systemowych Ile było naruszeń access-list 101: grep "101 denied" rtr|wc Z jakich adresów IP: grep "101 denied" rtr|colrm 1 88|more Jakie adresy były najaktywniejsze: grep "101 denied" rtr|colrm 1 88|sort|uniq -c |sort -r|more
35 Analiza logów systemowych • logwatch – program do analizy logów • modułowa konstrukcja • uruchamiany przez cron lub na życzenie • napisany w perl, można dodać własne moduły lub modyfikować istniejące • trzy poziomy szczegółowości analizy high, med, low • efekty analizy zapisywane do zbioru, wyświetlane na ekran lub wysyłane mailem • konfiguracja w /etc/log.d/logwatch.conf • skrypty do analizy w kartotece /etc/log.d/conf/services
36 Monitorowanie i diagnostyka sieci • arpwatch – daemon do monitorowania par adresów MAC/IP • Zapisuje baze danych MAC/IP w zbiorze /var/arpwatch/arp.dat • Po restarcie wczytuje uprzednio zapisane dane z arp.dat • Umożliwia wykrycie samowolnych zmian adresu IP, podsłuchiwanie pakietów (ettercap), zlokalizowanie stacji będącej przyczyną złego działania sieci • arp.dat może posłużyć do zbudowania konfiguracji dhcpd
37 Monitorowanie i diagnostyka sieci new activity – para IP/MAC nie była używana od 6 miesięcy new station – pojawił się nowy adres MAC flip flop – adres IP pojawił się z adresu MAC, na którym był poprzednio changed ethernet address – adres IP pojawił się z nowego adresu MAC (po raz pierwszy)
38 Monitorowanie i diagnostyka sieci bogon – ramka z adresu IP nie należącego do lokalnej sieci ethernet (IP) broadcast – ramka z adresu broadcast ethernet (IP)
39 Monitorowanie i diagnostyka sieci • Tcpdump – wyświetla nagłówki pakietów w sieci, opcjonalnie zapisuje je do zbioru • -i – tylko na wskazanym interfejsie • -n – nie zamieniaj adresów na nazwy • -q – wyświetlaj mniej informacji • -v – wyświetlaj więcej informacji (-vv, -vvv – jeszcze więcej) • Umożliwia selekcję ramek według adresu źródłowego, docelowego, protokołu • Przykład – raportuj wszystkie pakiety TCP oprócz pochodzącego od komputera test: tcpdump tcp and not host test
40 Monitorowanie i diagnostyka sieci • nmap – testuje otwarte porty • Umożliwia wykrycie potencjalnych luk w bezpieczeństwie • Odgaduje rodzaj systemu operacyjnego • Wyszukuje otwarte porty UDP i TCP • Znajduje aktywne adresy IP z podanym zakresie • Rożne rodzaje skanowania, często trudne do wykrycia
41 Monitorowanie i diagnostyka sieci Przykłady: nmap test.com – wykrywa otwarte porty TCP komputera test.com nmap -sU test.com – wykrywa otwarte porty UDP komputera test.com (długotrwałe skanowanie) nmap -sV test.com – wykrywa programy i ich wersje słuchające na portach nmap -sP 195.164.200.1-10 - wykrywa (ping) aktywne adresy IP w zakresie 195.264.200.1 - 195.164.200.10
42 Monitorowanie i diagnostyka sieci netstat – wyświetla: domyślnie – połączenia sieciowe -r – tablica roputingu -i – statystyki interfejsów -s - statystyki protokołów -g – członkostwo w grupach multicast
43 Monitorowanie i diagnostyka sieci Traceroute, ping, mtr - narzędzia do diagnostyki połączeń sieciowych wysyłają testowe ramki ICMP lub UDP i oczekują na odpowiedź pozwalają wykryć jaką trasą wędrują ramki i gdzie na ich drodze występują problemy.
44 Monitorowanie i diagnostyka sieci Ping wysyła ramkę ICMP ECHO_REQUEST i oczekuje na odpowiedź ramką ICMP ECHO_REPLY Użyteczne opcje: -b – wyślij ramkę na adres broadcast -f – wysyłaj ramki z maksymalną szybkością, nie czekaj na odpowiedź -n – nie zamieniaj adresów na nazwy -i n - wysyłaj ramki co n sekund -s n – wysyłaj ramki n-bajtów (domyślnie 56) -c n – wyślij tylko n ramek
45 Monitorowanie i diagnostyka sieci traceroute wysyła ramki UDP długości 40 bajtów kolejno zwiększając pole TTL. Urządzenie, które wyzeruje TTL odpowiada ramką ICMP TIME_EXCEEDED Użyteczne opcje: -I – użyj ramki ICMP zamiast UDP -m – ustaw maksymalne ttl na inne, niż domyślne 30 -n – nie zamieniaj adresów na nazwy -p – ustaw początkowy port inny niż domyślny 33434
46 Firewall • iptables – filtrowanie ramek IPv4 i NAT • tablice filtrowania obsługiwane przez jądro • program iptables służy do konfigurowania tabel filtrowania jądra (od wersji 2.4) • konfiguracja iptables w zbiorze • /etc/sysconfig/iptables-config • reguły filtrowania w zbiorze /etc/sysconfig/iptables
47 Firewall • Trzy wbudowane tablice: • filter – domyślna tablica • nat – używana dla pakietów tworzących nowe połączenie • mangle – używana do specjalizowanej zmiany pakietów Tablicę wybieramy opcją -t, np.: iptables -L -t nat
48 Firewall • Tablice zawierają łańcuchy składające się z reguł • Reguły definiują, co zrobić z pakietem, który do nich pasuje • jeśli pakiet nie pasuje do reguły, sprawdzana jest następna reguła w łańcuchu, jeśli pasuje, to: • wykonywany jest kolejny, zdefiniowany przez użytkownika łańcuch • ACCEPT – pakiet jest akceptowany • DROP – pakiet jest niszczony • QUEUE – pakiet jest umieszczany w kolejce • RESUME – opuszczany jest bieżący łańcuch i sprawdzana jest kolejna reguła łańcucha nadrzędnego
49 Firewall • Wbudowane łańcuchy: • INPUT – dla pakietów wchodzących do systemu • OUTPUT – dla pakietów utworzonych w systemie • FORWARD – dla pakietów wchodzących do systemu, ale nie dla niego przeznaczonych • PREROUTING (POSTROUTING) – w tablicach nat i mangle, dla pakietów tuż po wejściu (tuż przed opuszczeniem) systemu
50 Firewall Polecenia: -A – dodaj regułę na końcu łańcucha -D – usuń wskazaną regułę z łańcucha -L – wyświetl tablicę (domyślnie tablica filter, jeśli inna, to np. -t nat) -F – usuń reguły z tablicy -Z – wyzeruj liczniki pakietów -P – ustaw domyślną politykę dla tablicy