ZARZĄDZANIE SERWERAMI SIECIOWYMI
Transkrypt
ZARZĄDZANIE SERWERAMI SIECIOWYMI
ZARZĄDZANIE SERWERAMI SIECIOWYMI mgr inż. Adam Mencwal Katedra Informatyki Stosowanej [email protected] http://amencwal.kis.p.lodz.pl Wykład 1 – filozofia działania oraz podstawy obsługi systemów unixowych na przykładzie GNU/Linux ➔ przegląd systemów unixowych, licencje oprogramowania, (GPL,BSD), porównanie “filozofii” działania ➔ dystrybucje GNU/Linuxa ➔ struktura katalogów ➔ polecenia systemowe ➔ jądro systemu (ang. kernel), obsługa urządzeń, kompilacja ➔ konfiguracja środowiska sieciowego (netstat, ifconfig, ping, etc) ➔ zarządzanie prawami do uruchamiania programów administratorskich (sudo) (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej licencje oprogramowania – BSD (Berkeley Software Distribution ) ● ● ● ● BSD – pochodna Unixa rozwijana od lat 70-tych w Uniwersytecie Kalifornijskim w Berkeley 1969 Bardziej liberalna niż GPL (wolność modyfikacji i dystrybuowania kodu ale również możliwość „zamknięcia” kodu, (warunek: informacja o autorach) preferowana licencja (i system operacyjny) dużych firm: Sun – Solaris, Mac OS X – Apple, Juniper OS ciekawostka: Pionerski system obsługujacy protokół IP UNIX PDP7 1975 BSD 1 1980 GNU 1985 1990 Solaris Free BSD 1996 Net BSD GNU/Linux Open BSD (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej licencje oprogramowania – GPL (GNU Public Licence) ● licencja „wymuszająca” wolność kodu tj użytkownik: - może uruchamianiać program, analizować, modyfikować i kopiować jego źrodła; - musi udostępnić źródła w przypadku dystrybuowania wersji binarnej programu najpopularniejsza licencja wolnodostępnego oprogramowania (w dystrybucji Red Hat Linux 7 55.30% było udostępnione na licencji GPL ) Prace nad v3 : nacisk na DRM (Digital Restrictions Management) i patenty na oprogramowanie Zasada „copyleft” Krytyka: licencja „wirusowa” ,zaraża wszelkie pochodne prace ●Ciekawostka: Microsoft Windows Services for UNIX na GPL przez Microsoft ● (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Dystrybucje GNU/Linuxa ● ● ● ● Dystrybucja - zestaw programówdziałających pod systemem GNU/Linux rozpowszechnianych łącznie i dający po zainstalowaniu gotowy do użycia system. (wikipedia.pl) oparte o “rdzeń” GNU, różniące się interfejsem graficznym, sposobem obsługi, ideologia, wsparciem technicznym, cyklem aktualizacji, itp. programy (jak i też pojedyncze biblioteki i całe podsystemy) najczęściej dystrybuowane w postaci binarnej (tzw. pakietów) i zarządzane przez managera pakietów pilnującego zależności najbardziej znane: Debian,Fedora Core, Gentoo, Knoppix, Linspire, Mandriva (dawniej Mandrake), PLD, Red Hat, Slackware, SUSE, Ubuntu (lista wszystkich na www.distrowatch.com) (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Architektura środowiska graficznego w dystrubucji GNU/Linux KDE Xfree86 Gnome Fluxbox X.org system GNU XFCE XGL Menedżer okien Serwer grafiki System operacyjny (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej struktura katalogów systemu GNU/Linux /bin/ /boot/ /dev/ /etc/ /home/ /lib/ /mnt/ /proc/ /sbin/ /tmp/ /var/ /usr/ <= podstawowe polecenia systemowe <= pliki jąder ładowane przy uruchamianiu systemu <= pliki specjalne jako interfejs do obsługi urządzeń <= globalne pliki konfiguracyjne <= katalogi domowe użytkowników <= biblioteki systemowe <= podmontowane napędy <= pseudosystem plików jako interfejs do ustawień jądra <= usługi systemowe <= katalog plików tymczasowych <= dodatkowe dane programów (logi, skrypty, itp.) <= inne, dodatkowe programy (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej podstawowe polecenia i narzędzia systemowe (unixowe) ● zarządzanie systemem i użytkownikami df, du <= raport o zajętości dysku/katalogu fuser <= identyfikacja procesów używających podane zasoby uname <= informacje o systemie i kernelu users,who <= raport o aktualnie zalogowanych użytkownikach last <= raport o ostatnio zalogowanych użytkownikach env <= przegląd zmiennych systemowych adduser,useradd,deluser,userdel <= zarządzanie użytkownikami modprobe, rmmod, lsmod <= operacje na tzw. modułach, odp.: załadowanie/ usunięcie z pamięci, listing ● zarządzanie procesami chroot kill/killall/pkill nice ps, top watch <= umieszczanie procesu w środowisku izolowanym <= zakończenie procesu po PIDzie/nazwie/atrybutach <= modyfikacja priorytetu wykonywania procesu <= listing uruchomionych procesów/ z odświeżaniem <= podgląd na bieżąco działającego procesu (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej podstawowe polecenia i narzędzia systemowe c.d. ● zarządzanie plikami i systemem plików chmod <= zmiana uprawnień plików lub katalogów chown <= zmiana właściciela pliku cp, mv, rm, shred ,dd <= odpowiednio: kopiowanie, przenoszenie, usuwanie, bezpieczne usuwanie plików, kopiowanie bloków danych ln <= tworzenie dowiązania między dwoma plikami ls <= listing plików w katalogu mkdir <= tworzenie katalogów pwd <= wypisanie bieżącego katalogu mknod <= tworzenie węzłów specjalnych (dostępu do urządzenia) touch <= zmiana znacznika czasowego (ang. timestamp) pliku ● przetwarzanie tekstu cat, tac cut grep head,tail sort uniq wc ● <= wyświetlenie pliku/wypisanie liniami wstecz <= wyświetlenie fragmentów tekstu <= wyświetlenie linii tekstu zawierających dane wyrażenie <= wyświetlenie poczatku/końca tekstu <= sortowanie linii tekstu, <= wyświetlenie tylko niepowtarzających się linii tekstu <= zliczenie słów/bajtów/linii w tekście pełna lista programów unixowych: http://en.wikipedia.org/wiki/List_of_Unix_programs porównanie poleceń systemowych na różnych systemach unixowych: http://bhami.com/rosetta.html (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej obsługa urządzeń, kompilacja jądra ● ● ● Dostępność kodów źródłowych umożliwia selekcję wybranych funkcjonalności jądra uruchomienie menu konfiguracyjnego: make menuconfig (w katalogu ze źrodłami kernela - najczęściej /usr/src/linux/ ) kompilacja: make bzImage modules modules_install (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Podstawy konfiguracji środowiska sieciowego systemu GNU/Linux ● ● ● ● ● ● ● ● modprobe/lsmod/rmmod ifconfig route netstat ping, traceroute <= zarządzanie modułem karty sieciowej <= konfiguracja interfejsu sieciowego <= konfiguracja rutingu statycznego <= wyświetlanie otwartych gniazd UDP, połączeń TCP, tablicy rutingu,itp. <= testowanie drożności tras /etc/hosts <= /etc/resolv.conf <= /etc/hosts.{allow/deny} <= rozwiazywanie nazw(stat.) rozwiązywanie nazw(dyn.) restrykcje dostępu do usług (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej ifconfig – zarządzanie interfejsami sieciowymi ifconfig <interfejs> <IP> <opcje> <interfejs> <IP> <opcje> <= <= nazwa interfejsu (np. eth0, eth1, ppp0) numer IP przydzielony interfejsowi mogą przyjmować przykładowe wartości: up/down netmask <maska> arp <= <= <= [-]promisc <= mtu <N> hw ether <MAC> <= <= włączanie/wyłączanie interfejsu ustawienie maski sieciowej włączanie/wyłączanie używania protokołu ARP włączanie/wyłączanie trybu promiscous (przechwytywanie wszystkich pakietów) ustawienie MTU ustawienie adresu MAC (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej route – zarządzanie trasami route [add | del] [-net | -host] <cel> <opcje> <cel> <= docelowa sieć lub stacja <opcje> mogą przyjmować przykładowe wartości: netmask M gw GW dev IF mss M <= <= <= <= ustawienie maski sieciowej M trasowanie pakietów poprzez bramkę GW związanie trasy z podanym interfejsem ustawienie MSS na M (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej route – przykład wyjścia polecenia Destination 213.25.2.139 192.168.0.0 0.0.0.0 U H G R D M A C ! - Gateway 0.0.0.0 0.0.0.0 213.25.2.139 Genmask 255.255.255.255 255.255.255.0 0.0.0.0 Flags UH U UG Metric Ref Use Iface 0 0 0 ppp0 0 0 0 eth0 0 0 0 ppp0 trasa jest zestawiona [up] cel jest stacją [host] użyj bramki [gateway] reinstancjuj trasę na trasowanie dynamiczne dynamicznie instalowana przez demona lub przekierowanie modyfikowana z demona trasowania lub przekierowania instalowana przez addrconf wpis bufora podręcznego [cache] trasa odrzucenia [reject] (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej netstat – przykład wyjścia polecenia (fragment) Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address tcp 0 0 0.0.0.0:8192 tcp 0 0 0.0.0.0:5222 tcp 0 0 192.168.0.5:80 tcp 0 22 83.26.26.21:3613 tcp 131 0 83.26.26.21:4247 tcp 0 0 83.26.26.21:4662 udp 0 0 0.0.0.0:4666 udp 0 0 127.0.0.1:53 Proto Ref Cnt unix 16 unix 2 Foreign Address 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 82.21.16.92:105 80.108.9.23:2456 83.24.14.20:3414 0.0.0.0:* 0.0.0.0:* Flags Type State [] DGRAM [ACC] STREAM LISTENING I-Node 983 11375257 State LISTEN LISTEN LISTEN FIN_WAIT2 TIME_WAIT ESTABLISHED Path /dev/log /var/run/mysqld.sock (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej /etc/hosts & /etc/resolv.conf – przykłady ● /etc/hosts 127.0.0.1 192.168.1.10 192.168.1.13 146.82.138.7 209.237.226.90 ● localhost foo.mydomain.org foo bar.mydomain.org bar master.debian.org master www.opensource.org /etc/resolv.conf domain kis.p.lodz.pl search kis.p.lodz.pl lab.kis.p.lodz.pl nameserver 127.0.0.1 nameserver 194.204.159.1 (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej hosts.{allow/deny} hosts.allow i hosts.deny to pliki definiujące restrykcje dostępu do lokalnego komputera według kryteriów: ●wywoływany program (demon) ●adres źródłowy połączenia Kolejność wpisów ma znaczenie! (sprawdzanie w kolejności: hosts.allow => hosts.deny => przyjęcie połączenia) Można nastawić wykonanie komendy przy trafieniu! (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej hosts.{allow/deny} - przykłady /etc/hosts.allow in.tftpd: LOCAL, host.domain telnet: 10.0.0.8, .sub.domain (echo „uwaga!”) ALL : spawn /usr/bin/mail /etc/hosts.deny Polecenie wywoływane (demon) ALL: Źródło połączenia Uruchomienie programu (opcjonalne) (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej sudo – co to takiego? Sudo (ang. 'superuser do') to program stosowany w systemach operacyjnych GNU/Linux, Unix i podobnych, w celu umożliwienia użytkownikom uruchomienia aplikacji, normalnie zarezerwowanych dla administratora. (źródło: http://pl.wikipedia.org) (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Sudo – jak to działa? Działanie sudo opiera się na zczytaniu pliku konfiguracyjnego /etc/sudoers w którym można definiować restrykcje wykonywania poleceń według: ● Komputera użytkownika ● Loginu użytkownika ● Uruchamianej komendy (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Sudo – podstawowa składnia Podstawowa składnia /etc/sudoers: użytkownik komputer = (uruchom-jako-użytkownik) komenda Realny przykład /etc/sudoers: janek localhost = /usr/bin/ftp Z prawami administratora (!) piotrek server = (krzysiek) /usr/bin/last (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Sudo - aliasy Sudo zezwala na używanie tzw. aliasów przydatnych przy ustalaniu wielu wartości poszczególnie dla pól: ● nazwy użytkownika: ● User_Alias PRACOWNICY = janek, krzysiek nazwy komputera: ● Host_Alias SERWERY= moj_serwer, 125.0.0.0/8 Komendy ● Cmnd_Alias DRUK = /usr/sbin/lpc, /usr/bin/lprm Nazwy użytkownika 'uruchom jako' ● Runas_Alias ADMINI = root , db-operator (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Sudo – przykład aliasów Przykład zastosowania aliasów w /etc/sudoers: User_Alias FULLTIMERS = millert, mikef, dowdy Runas_Alias DB = oracle, sybase Host_Alias Cmnd_Alias CUNETS = 128.138.0.0/255.255.0.0 KILL = /usr/bin/kill FULLTIMERS CUNETS = (DB) KILL (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej Tematyka Wykładu 1 – podsumowanie ➔ przegląd systemów unixowych, licencje oprogramowania, (GPL,BSD), porównanie “filozofii” działania ➔ dystrybucje GNU/Linuxa ➔ struktura katalogów ➔ polecenia systemowe ➔ jądro systemu (ang. kernel), obsługa urządzeń, kompilacja ➔ konfiguracja środowiska sieciowego (netstat, ifconfig, ping, etc) ➔ zarządzanie prawami do uruchamiania programów administratorskich (sudo) (c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej