To jest stara wersja strony!


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ć:

  • powtórzyć pracę z vi!
  • przeczytać manuale do plików inittab, syslog.conf, crontab
  • przejrzeć slajdy wykładu dot. administracji (Podstawy zarządzania systemem, Procesy i monitorowanie systemu)
  • przeczytać:
  • prześledzić proces uruchamiania i zatrzymywania systemu,
  • sprawdzić działanie systemu poczty elektronicznej, w tym klienta mail - potrzebne do czytania raportów Crona,
  • przypomnieć sobie podstawowe informacje o TCP/IP niezbędne do skonfigurowania interfejsu sieciowego, a tym adresację IP.

WPROWADZENIE

Tryby pracy systemu

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

  • start programu ładującego jądro (bootstrapu), np. lilo,grub,
  • ładowanie i dekompresja jądra,
  • inicjalizacja podstawowych urządzeń, których obsługa jest wkompilowana w jądro,
  • sprawdzenie i podmontowanie głównego systemu plików,

Po załadowaniu jądra uruchamiany jest init:

  • uruchomienie procesu init (zawsze PID=1),
  • przeczytanie pliku konf. /etc/inittab,
  • sprawdzenie i podmontowanie pozostałych systemów plików,
  • przejście na odpowiedni poziom pracy (ang. runlevel),
  • uruchomienie usług funkcjonujących na tym poziomie,
  • zezwolenie na logowanie się użytkowników.

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:

  • poziom 0 oznacza zatrzymanie (halt),
  • poziom 1 jest trybem dla jednego użytkownika (single) - administratora,
  • poziomy 2 - 5 są różnymi trybami pracy dla wielu użytkowników,
  • 6 - oznacza zatrzymanie i restart (reboot),
  • poziomy pracy można zmieniać: # init N
  • przeważnie inittab jest w stylu SYSV, każdemu poziomowi odpowiada katalog /etc/rcN.d i w nim skrypty Kxx Sxx

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

  • pracuje na każdym poziomie od 0 - 6,
  • skrypt zatrzymuje i uruchamia usługi na każdym poziomie,
  • każdemu poziomowi pracy jest przyporządkowany podkatalog /etc/rc<#>.d,
  • nazwa usługi (skryptu) w tych katalogach ma postać: K##nazwa lub S##nazwa

Zatrzymanie systemu

składa się z etapów:

  • wydanie polecenia shutdown,
  • system powiadamia użytkowników o zatrzymaniu,
  • wszystkie procesy użytkowników są zatrzymywane,
  • system przechodzi na poziom 0, lub 6,
  • zatrzymanie odpowiednich usług,
  • odmontowanie systemów plików,
  • zatrzymanie lub restart systemu.

Monitorowanie pracy

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

  • rejestrowanie (logowanie; log - dziennik) oznacza systematyczne zapisywanie odpowiednich informacji do plików,
  • pliki rejestrów określa się po ang. log files,
  • logowanie jest wykonywane przez pracujący bez przerwy system Sysklogd, składający się z demonów: klogd i syslogd,

Syslog:

  • system Sysklogd zapisuje (loguje) informacje do plików rejestrów/„logów” systemowych, w katalogu /var/log
  • pliki rejestrów są plikami tekstowymi o jednolitej składni,
  • pliki rejestrów są cyklicznie porządkowane przy pomocy specjalnych programów wywoływanych przez Cron.
  • syslogd jest jednym z najważniejszych demonów systemowych,
  • syslogd rejestruje wszystkie informacje o pracy systemu,
  • jest uruchamiany jako jeden z pierwszych procesów i zamykany jako jeden z ostatnich,
  • konfiguracja syslogd znajduje się w pliku /etc/syslog.conf

Konfiguracja syslogd:

  • plik /etc/syslog.d (5) zawiera reguły według których syslogd sortuje informacje i zapisuje je do różnych plików rejestrowych,
  • reguła to dwa pola: selector action,
  • selector ma 2 części facility.priority,
  • facility określa system z którego pochodzi wiadomość np.: auth, kern, mail, syslog,
  • priority mówi o stopniu ważności wiadomości, np.: debug, warn, err, emerg.
  • w polu action może być wpisany plik, urządzenie sterujące terminalem.

Pliki rejestrowe systemu:

  • nazwy i zawartość zależą od konfiguracji syslogd,
  • pliki rejestrów są plikami tekstowymi,
  • składają się z linii o określonym formacie, przeważnie jest to:

data godzina hostname proces: komunikat

  • umieszczane są w katalogu /var/log,
  • niektóre duże programy jak Apache czy FTP mogą zakładać w /var/log własne katalogi z logami.

Korzystanie z Cron

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

  • at umożliwia jednorazowe uruchomienie programu o zadanym czasie,
  • cron umożliwia cykliczne uruchamianie programów,
  • obydwa systemy mogą być używane przez wszystkich użytkowników,
  • składają się z części serwera (demona) i klienta - uruchamianego przez użytkownika,
  • serwer atd kolejkuje zadania każdego użytkownika,
  • w przypadku cron każdy użytkownik ma jeden plik crontab, w którym zapisuje wszystkie zadania,
  • cron udostępnia dodatkową funkcjonalność administratorowi,
  • cron jest jednym z podstawowych narzędzi automatyzujących pracę administratora.

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

  • crontab umożliwia edycję i pokazywanie pliku crontab,
  • każdy użytkownik ma jeden taki plik,
  • w pliku może się znajdować wiele zadań, każde w osobnej linii,
  • polecenie crontab korzysta z zewnętrznego edytora do edycji pliku.

Składnia pliku crontab:

  • linia składa się z sześciu pól, ostatnie to nazwa polecenia do wykonania,
  • pola w każdej linii oznaczają kolejno: minutę, godzinę, dz. mies., miesiąc, dz. tyg.,
  • gwiazdka w miejscu wartości oznacza: „dla każdej wartości pola”, np.: co godzinę,
  • kilka wartości rozdziela się przecinkami,
  • znak „-” pozwala na podanie zakresu wartości,
  • połącznie go ze znakiem „/” umożliwia podanie kroku w obrębie zakresu.

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.

  • określenie parametrów (IP, maska, itp.),
  • konfigurownie przy pomocy ifconfig,
  • testowanie przy pomocy ping,
  • zapis konfiguracji w plikach dystrybucji systemu.

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

  • adres IP,
  • maska sieci IP,
  • broadcast IP,
  • adres MAC, jeżli wykorzystuje się DHCP.

ifconfig służy do konfigurowanie interfejsu sieciowego.

  • Podstawowy sposób wywołania to:
      ifconfig if address adres netmask maska
  • Włączanie, wyłącznie interfejsu:
      ifconfig if up,down
  • Wyświetlanie informacji o interfejsie:
      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ć:

  • programów typu ifup, ifdown,
  • plików opisujących konfigurację interfejsów /etc/network, /etc/sysconfig/network,
  • dodatkowych narzędzi konfiguracyjnych typu RHControlPanel.

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

  • adresy interfejsów,
  • adresy sieci IP,
  • ewentualnie inne sieci do których określa się bezpośrednio dostęp,
  • adres routera przekazującego pakiety poza sieć, default route,

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

  • zarządzania tablicą routingu,
  • tablica określa sposób przekazywania pakietów przez stos TCP/IP,
  • sposób użycia to:
      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:

  • order {hosts,bind,nis} - porządek odwoływania się do DNS i hosts,
  • trim on/off - usuwanie nazw domen
  • multi on/off - wielokrotne nazwy
  • nospoof,spoofalert,reorder on/off

W pliku resolv.conf zapisuje się:

  • adresy serwerów DNS: nameserver addr,
  • nazwę lokalnej domeny: domain,
  • sposób przeszukiwania domen: search.

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

  • adresy IP lokalnych interfejsów (w tym musi być loopback),
  • nazwa FQDN maszyny,
  • adresy sieci podłączonych do interfejsów lokalnych,
  • adresy innych maszyn i sieci.

Do testowania resolvera można użyć:

  • ping wraz z nazwą symboliczną (domenową),
  • narzędzi do pracy z DNS: host, nslookup,
  • powyższe dwa programy działają tylko w przypadku połączenia z serwerem DNS.

Ć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!

1 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.

2 Start systemu

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

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

3 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.

4 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ę?

5 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.

6 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.

7 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.

8 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.

9 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
pl/dydaktyka/unix/lab_administrowanie_2.1514964380.txt.gz · ostatnio zmienione: 2019/06/27 15:55 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0