Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:dydaktyka:unix:lab_administrowanie_2 [2015/12/03 09:52]
kkluza [DO_PRZYGOTOWANIA]
pl:dydaktyka:unix:lab_administrowanie_2 [2019/06/27 15:50]
Linia 1: Linia 1:
-====== Tryby pracy i monitorowanie systemu ====== 
  
-<​code>​ 
-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. 
-</​code>​ 
- 
-===== DO_PRZYGOTOWANIA ===== 
- 
-Samodzielnie należy przed tym laboratorium przygotować:​ 
-    * powtórzyć pracę z vi! 
-    * przeczytać manuale do plików //​inittab//,​ //​syslog.conf//,​ //crontab// 
-    * przeczytać:​ 
-      * {{pl:​dydaktyka:​unix:​gjn-cron.pdf|Konfigurowanie i zastosowanie systemu Cron}} 
-      * {{pl:​dydaktyka:​unix:​gjn-syslog.pdf|Monitorowanie systemu GNU/Linux przy pomocy Syslog}} 
-    * 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: 
-<​code>​ 
-      ifconfig if address adres netmask maska 
-</​code>​ 
-    * Włączanie,​ wyłącznie interfejsu: 
-<​code>​ 
-      ifconfig if up,down 
-</​code>​ 
-    * Wyświetlanie informacji o interfejsie:​ 
-<​code>​ 
-      ifconfig if 
-</​code>​ 
- 
-**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: 
-    <​code>​ 
-      route -v -n {add|del} {-host|-net} adres gw adres netmask maska interfejs 
-</​code>​ 
- 
-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! 
- 
-==== - Zamykanie ==== 
- 
-  - Zamknąć system przy pomocy **shutdown**. 
-  - Zamknąć system przy pomocy **shutdown** z opóźnieniem 3 minutowym, wysyłając przy tym stosowną informację do użytkowników. 
- 
-==== - Start systemu ==== 
-Zwrócić uwagę jak przebiega start systemu UML. 
- 
-Po zalogowaniu jako root sprawdzić działanie plecenia **dmesg**. 
- 
- 
-==== - Init ==== 
- 
-  -   ​Sprawdzić jaki jest domyślny tryb pracy systemu. 
-  - W pliku ///​etc/​inittab//​ proszę zmienić pole ''​initdefault''​. Zrestartować system, sprawdzić i ocenić wyniki modyfikacji. 
-  - Wykonać ćwiczenie 1. Odnaleźć w katalogu ///etc// podkatalog rc.<​initdefault>​.d. Zamienić kolejność uruchamiania 2 wybranych usług. 
-  - Jeżeli usługa jest uruchamiana z numerem "​nn"​ (Snn, to z jakim numerem powinna być zatrzymywana ? 
-  -   ​Uruchmić jeden ze skryptów z katalogu rc.<​initdefault>​.d. Jakie parametry przyjmuje skrypt? 
-  - Wykorzystując ćwiczenie 5., ręcznie zatrzymać i ponownie uruchomić wybraną usługę z katalogu rc.<​initdefault>​.d. 
-  - 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). 
-  - //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):​ 
-      - brak reakcji, 
-      - pojawienie się na konsoli komunikatu, 
-      - zatrzymanie (halt) systemu. 
- 
-==== - Procesy i sygnały ==== 
- 
-  - Po otwarciu dwóch oddzielnych sesji proszę w każdej z nich wywołać polecnie: **ps**. Jakie procesy są widoczne? 
-  - Proszę przećwiczyć użycie opcji ''​l u m e''​ polecenia **ps**. 
-  - Jakich opcji ps należy użyć, aby obejrzeć: 
-    - proces ''​init'',​ 
-    - PID procesów, 
-    - PPID procesów, 
-    - środowisko procesów, 
-    - informacje o zużyciu pamięci przez procesy. 
-  - Jak przy pomocy ps i innego polecenia można oglądnąć procesy wybranego użytkownika?​ 
-  -   ​Uruchomić w tle proces find, odnaleźć jego PID i usunąć proces. 
-  - Jak można przy pomocy jednokrotnego użycia kill usunąć wszystkie procesy w danej sesji? 
-  - Powtórzyć kilkakrotnie ćwiczenie 5. za każdym razem usuwając proces innym sygnałem. Jakie pojawiają się komunikaty? 
-  - Jaki sygnał należy wysłać do demona systemowego by przeczytał swoją konfigurację?​ 
- 
-==== - Priorytety procesów ==== 
- 
-  - Przy pomocy **ps** wyświetlić wartości nice procesów. 
-  - Uruchomić proces **find** z nice 10 na 2 sposoby. 
-  - Zmienić wartość nice dla powłoki w której się pracuje. 
-  - Uruchomić w tle 2 procesy find, z nice odpowiednio 0 i 20. Który z nich zakończy się pierwszy? Zmierzyć czas ich działania przy pomocy time. 
- 
- 
-==== - Polecenia at i cron ==== 
- 
-  -   O ile w systemie jest uruchomiony demon **atd** (sprawdzić!),​ proszę wykonać poniższe: 
-      Przy pomocy polecenia at proszę zlecić uruchomienie:​ 
-    - **who** za godzinę, 
-    - **ps** w najbliższą niedzielę, 
-    - **df** jutro o tej samej porze. 
-      Proszę oglądnąć kolejkę zleceń i zawartość skryptów zleceń. 
-  - 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ą?​ 
-  - W sesji administratora zabronić dostępu do **at** wybranemu użytkownikowi. Sprawdzić jak działa kontrola dostępu. 
-  - Uruchamiać przy pomocy Cron wybrane polecenie: 
-      - co godzinę, 
-      - co pół godziny, 
-      - w każdy poniedziałek o 6:00, 
-      - codziennie, o 6:20, 8:20, 12:20, 18:20, 
-      - co 4 godziny ale tylko od poniedziałku do piątku, 
-      - o 12:00, 13:00, 14:00, 15:00; w 1., 13., 20. dzień każdego miesiąca. 
-  - Jak uruchamiać program codziennie korzystając z Cron, ale bez modyfikacji pliku crontab? 
-  - Założyć katalog ///​etc/​cron.new//​ i tak skonfigurować demon Cron, by pliki wykonywalne w tym katalogu były uruchamiane 3 razy dziennie. 
- 
-==== - 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:​ 
- 
-<​code>​ 
-  logger [-p facility.priority] wiadomosc 
-</​code>​ 
-Użycie parametru ''​-p''​ jest opcjonalne. 
- 
-Dodatkowo można etykietować wpisy przez ''​-t''​. 
- 
-  - Skonfigurować syslogd tak, aby odpowiednie komunikaty były kierowane do podanych plików. 
-<​code>​ 
-ź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 
-</​code> ​       
-Co należy zrobić, aby zmiany w konfiguracji odniosły skutek? 
-Proszę przetestować wprowadzone zmiany przy pomocy polecenia **logger**. 
- 
-==== - Rotacja plików rejestrowych ==== 
- 
-  - Skonfigurować system Cron w ten sposób by programy logrotate lub savelog były uruchamiane:​ 
-      - w każdą niedzielę o 23:00, 
-      - 30. dnia miesiąca o 5:00, 
-      - codziennie o 2:00. 
-  - Proszę skonfigurować logrotate aby dokonywał rotacji plików: 
-      - ///​var/​log/​messages//​ codziennie, kompresował je i zachowywał 8 poprzednich fragmentów,​ 
-      - ///​var/​log/​security//​ codziennie, bez kompresji i datę każdej rotacji zapisywał w pliku ///​var/​log/​rotate.log//,​ 
-      - ///​var/​log/​debug co// tydzień, bez kompresji. 
-==== - Podstawy konfigurowania interfejsów sieciowych ==== 
- 
-  - 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). 
-  - Sprawdzić bieżącą konfigurację interfejsu i zapisać ją. 
-  - Skonfigurować interfejs ''​eth0''​ przy pomocy **ifconfig**. 
-  - Sprawdzić łączność z innymi maszynami przez **ping**. 
-  - Przeglądnąć bieżącą konfigurację routingu na terminalu (w UML) i na serwerze przez **route**. 
-  - Przetestować łączność z wybranym odległym serwerem przez traceroute. 
-  - Oglądnąć ///​etc/​resolv.conf//​ sprawdzić działanie DNS przez **host**, **dig**, **nslookup**. 
-  - 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.txt · ostatnio zmienione: 2019/06/27 15:50 (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