Spis treści

Tryby pracy i monitorowanie systemu

Duża firma organizuje dla swoich pracowników bal maskowy.
- szef przychodzi w masce wilka,
- sekretarka przychodzi w masce Kopciuszka,
- admin przychodzi w masce 255.255.255.0.

DO_PRZYGOTOWANIA

Samodzielnie należy przed tym laboratorium przygotować:

WPROWADZENIE

Tryby pracy systemu

Uruchamianie systemu można podzielić na pewne ogólne etapy:

Po załadowaniu jądra uruchamiany jest init:

LILO ładuje jądro Linuksa do pamięci. Jest instalowany na początku twardego dysku (MBR), lub jego partycji i umożliwia uruchamianie różnych systemów operacyjnych. Nie obsługuje jednak systemów plików i ma ograniczone możliwości obsługi sytuacji awaryjnych. Bootloaderem nowej generacji jest GRUB, obsługuje też ładowanie systemu przez sieć (DHCP/TFTP).

Init jest zawsze pierwszym procesem tworzonym przez jądro i ma zawsze PID=1. Uruchamia wszystkie inne procesy, działając z uprawnieniami administratora. Zmienia poziomy pracy systemu (runlevels), w tym uruchamia i zatrzymuje system. Konfiguracja jest w pliku /etc/inittab.

Poziomy pracy systemu

Są to różne tryby pracy systemu, w Linuksie:

W nowych dystrybucjach Linuksa do uruchamiania systemu stosuje się uniwersalny skrypt rc:

Zatrzymanie systemu

składa się z etapów:

Monitorowanie pracy

Linux (podobnie jak systemy Unix) ma mechanizmy rejestrujące każde zdarzenie w systemie.

Syslog:

Konfiguracja syslogd:

Pliki rejestrowe systemu:

data godzina hostname proces: komunikat

Korzystanie z Cron

Automatyzacja niektórych prac systemu jest niezwykle pomocna, używa się do niej programów:

Do komunikacji z demonem crond służy polecenie crontab:

Składnia pliku crontab:

Plik /etc/crontab zawiera centralną konfigurację demona cron, ma możliwość podania przed poleceniem nazwy użytkownika z prawami którego będzie wykonywane polecenie.

Cron jest m.in. przydatny w cyklicznym archiwizowaniu i analizowaniu plików Sysloga.

Konfigurowanie interfejsów sieciowych

Konfigurowanie interfejsu sieciowego można podzielić na kilka etapów.

Przed przystąpieniem do konfigurowania interfejsu trzeba ustalić jego podstawowe parametry. Są to:

ifconfig służy do konfigurowanie interfejsu sieciowego.

      ifconfig if address adres netmask maska
      ifconfig if up,down
      ifconfig if

ping jest uniwersalnym programem będącym częścią narzędzi dla sieci TCP/IP. Program służy do testowania połączeń w sieci IP, wykorzystuje protokół ICMP (pakiety echo replay/requst).

Interfejs loopback jest to wewnętrzny interfejs sieciowy, pełni rolę interfejsu zwrotnego, ma zawsze adres 127.0.0.1 i jest niezbędny do poprawnego działania aplikacji opartych o sieć TCP/IP.

Dystrybucje mogą dostarczać:

Przed przystąpieniem do konfigurowania tablicy routingu należy określić podstawowe parametry sieci do której włącza się interfejsy. Są to:

Podstawowym programem do konfigurowania routingu jest program route. Program służy do:

      route -v -n {add|del} {-host|-net} adres gw adres netmask maska interfejs

Do testowania routingu można użyć programu traceroute. Program służy do testowania routingu w sieci IP, wykorzystuje pole TTL pakietów IP i protokół UDP lub protokół ICMP. Resolver jest biblioteką będącą częścią biblioteki systemowej. Zajmuje się odnajdywaniem nazw maszyn pracujących w sieci. Jego konfiguracja składa się z kilku plików. Nazwę maszyny w sieci IP ustawia się przy pomocy polecenia hostname. Nazwę najczęściej zapisuje się na stałę w pliku /etc/hostname czytanym w trakcie startu systemu.

Plik host.conf jest jednym z podstawowych elementów konfiguracji: zawiera część konfiguracji resolvera, opcje to:

W pliku resolv.conf zapisuje się:

Plik /etc/hosts zawiera istotne dla funkcjonowania resolvera informacje. Znajdują się w nim między innymi:

Do testowania resolvera można użyć:

ĆWICZENIA

UWAGA! W poniższych ćwiczeniach należy zwracać baczną uwagę na to, które z nich wymagają dostępu administratora. Warto sprawdzić które czynności mogą być wykonane z poziomu użytkownika!

6 Zamykanie

  1. Zamknąć system przy pomocy shutdown.
  2. ^_^ Zamknąć system przy pomocy shutdown z opóźnieniem 3 minutowym, wysyłając przy tym stosowną informację do użytkowników.

7 Start systemu

Zwrócić uwagę jak przebiega start systemu UML.

Po zalogowaniu jako root sprawdzić działanie plecenia dmesg.

8 Init

  1. Sprawdzić jaki jest domyślny tryb pracy systemu.
  2. W pliku /etc/inittab proszę zmienić pole initdefault. Zrestartować system, sprawdzić i ocenić wyniki modyfikacji.
  3. Wykonać ćwiczenie 1. Odnaleźć w katalogu /etc podkatalog rc<initdefault>.d. Zamienić kolejność uruchamiania 2 wybranych usług.
  4. Jeżeli usługa jest uruchamiana z numerem „nn” (Snn), to z jakim numerem powinna być zatrzymywana?
  5. Uruchmić jeden ze skryptów z katalogu rc.<initdefault>.d. Jakie parametry przyjmuje skrypt?
  6. Wykorzystując ćwiczenie 5., ręcznie zatrzymać i ponownie uruchomić wybraną usługę z katalogu rc.<initdefault>.d.
  7. ^_^ Wykonać ćwiczenie 1. Zmodyfikować strukturę plików startowych tak, by podczas przejścia na domyślny tryb pracy, jako ostatnie było uruchamiane dodtakowe wybrane polecenie (skrypt).
  8. We własnym zakresie: W pliku /etc/inittab proszę zmienić pole ctrlaltdel, tak aby wciśnięcie klawiszy <Ctrl-Alt-Del> powodowało (Uwaga: w UML nie można tego sprawdzić, wciśnięcie klawiszy jest przechwytywane):
    1. brak reakcji,
    2. pojawienie się na konsoli komunikatu,
    3. zatrzymanie (halt) systemu.

9 Procesy i sygnały

  1. Po otwarciu dwóch oddzielnych sesji proszę w każdej z nich wywołać polecnie: ps. Jakie procesy są widoczne?
  2. Proszę przećwiczyć użycie opcji l u m e polecenia ps.
  3. Jakich opcji ps należy użyć, aby obejrzeć:
    1. proces init,
    2. PID procesów,
    3. PPID procesów,
    4. środowisko procesów,
    5. informacje o zużyciu pamięci przez procesy.
  4. Jak przy pomocy ps i innego polecenia można oglądnąć procesy wybranego użytkownika?
  5. Uruchomić w tle proces find, odnaleźć jego PID i usunąć proces.
  6. ^_^ Jak można przy pomocy jednokrotnego użycia kill usunąć wszystkie procesy w danej sesji?
  7. Powtórzyć kilkakrotnie ćwiczenie 5. za każdym razem usuwając proces innym sygnałem. Jakie pojawiają się komunikaty?
  8. Jaki sygnał należy wysłać do demona systemowego by przeczytał swoją konfigurację?

10 Priorytety procesów

  1. Przy pomocy ps wyświetlić wartości nice procesów.
  2. Uruchomić proces find z nice 10. Jak zmienić wartość nice tego procesu?
  3. Zmienić wartość nice dla powłoki w której się pracuje.
  4. ^_^ Uruchomić w tle 2 procesy find, z nice odpowiednio 0 i 19. Który z nich zakończy się pierwszy? Zmierzyć czas ich działania przy pomocy time.

11 Polecenia at i cron

  1. O ile w systemie jest uruchomiony demon atd (sprawdzić!), proszę wykonać poniższe:

Przy pomocy polecenia at proszę zlecić uruchomienie:

  1. who za godzinę,
  2. ps w najbliższą niedzielę,
  3. df jutro o tej samej porze.

Proszę oglądnąć kolejkę zleceń i zawartość skryptów zleceń.

  1. Powtórzyć ćwiczenie 1. dla poleceń, które nie wypisują informacji na wyjściu. Czy został wysłany list z raportem (sprawdzić przez mail)? Jeżeli nie, to jak wymusić wysłanie raportu pocztą elektroniczną?
  2. W sesji administratora zabronić dostępu do at wybranemu użytkownikowi. Sprawdzić jak działa kontrola dostępu.
  3. ^_^ Uruchamiać przy pomocy Cron wybrane polecenie:
    1. co godzinę,
    2. co pół godziny,
    3. w każdy poniedziałek o 6:00,
    4. codziennie, o 6:20, 8:20, 12:20, 18:20,
    5. co 4 godziny ale tylko od poniedziałku do piątku,
    6. o 12:00, 13:00, 14:00, 15:00; w 1., 13., 20. dzień każdego miesiąca.
  4. Jak uruchamiać program codziennie korzystając z Cron, ale bez modyfikacji pliku crontab?
  5. ^_^ Założyć katalog /etc/cron.new i tak skonfigurować demon Cron, by pliki wykonywalne w tym katalogu były uruchamiane 3 razy dziennie.

12 Konfiguracja syslogd

Do testowania syslogd można użyć polecenia logger, które wysyła wiadomości do syslogd. Wywołanie polecenia jest następujące:

  logger [-p facility.priority] wiadomosc

Użycie parametru -p jest opcjonalne.

Dodatkowo można etykietować wpisy przez -t.

  1. ^_^ Skonfigurować syslogd tak, aby odpowiednie komunikaty były kierowane do podanych plików.
źródło 	priorytet 	plik
user 	wszystkie 	user.log
user 	warning 	user_warn.log
daemon 	 wszytskie 	daemon.log
local7 	  info 	local.log
local7 	   niższe od err 	local_err.log
mail i uucp 	wszystkie 	mail.log
security i auth 	wszystkie 	security.log
wszystkie 	emerg 	emerg.log
wszystkie 	wszystkie 	all_messages.log

Co należy zrobić, aby zmiany w konfiguracji odniosły skutek? Proszę przetestować wprowadzone zmiany przy pomocy polecenia logger.

13 Rotacja plików rejestrowych

  1. Skonfigurować system Cron w ten sposób by programy logrotate lub savelog były uruchamiane:
    1. w każdą niedzielę o 23:00,
    2. 30. dnia miesiąca o 5:00,
    3. codziennie o 2:00.
  2. ^_^ Proszę skonfigurować logrotate aby dokonywał rotacji plików:
    1. /var/log/messages codziennie, kompresował je i zachowywał 8 poprzednich fragmentów,
    2. /var/log/security codziennie, bez kompresji i datę każdej rotacji zapisywał w pliku /var/log/rotate.log,
    3. /var/log/debug co tydzień, bez kompresji.

14 Podstawy konfigurowania interfejsów sieciowych

  1. Proszę ustalić z jakich adresów IP mogą korzystać terminale, maszyny UML wykorzystywane za zajęciach (domyślnie nieroutowalna sieci 192.168.1.0/24).
  2. Sprawdzić bieżącą konfigurację interfejsu i zapisać ją.
  3. Skonfigurować interfejs eth0 przy pomocy ifconfig.
  4. Sprawdzić łączność z innymi maszynami przez ping.
  5. Przeglądnąć bieżącą konfigurację routingu na terminalu (w UML) i na serwerze przez route.
  6. Przetestować łączność z wybranym odległym serwerem przez traceroute.
  7. Oglądnąć /etc/resolv.conf sprawdzić działanie DNS przez host, dig, nslookup.
  8. Sprawdzić pola MX dla różnych domen, wskazują one na Mail eXchangery domeny (serwery poczty), np.: dig agh.edu.pl mx