ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych...

24
ZARZĄDZANIE SERWERAMI SIECIOWYMI mgr inż. Adam Mencwal Katedra Informatyki Stosowanej [email protected] http://amencwal.kis.p.lodz.pl

Transcript of ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych...

Page 1: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

ZARZĄDZANIE SERWERAMI SIECIOWYMI

mgr inż. Adam MencwalKatedra Informatyki Stosowanej

[email protected]://amencwal.kis.p.lodz.pl

Page 2: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

Wykład 1 – filozofia działania oraz podstawy obsługi systemów

unixowych na przykładzie GNU/Linux

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

➔ 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)

Page 3: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

licencje oprogramowania – BSD(Berkeley Software Distribution )

1969 UNIX PDP7

1975

BSD 1

Solaris

1980

GNU

1985

1990

1996

Free BSD Net BSD

Open BSD

GNU/Linux

● BSD – pochodna Unixa rozwijana od lat 70-tych w Uniwersytecie Kalifornijskim w Berkeley

● 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

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Page 4: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

licencje oprogramowania – GPL (GNU Public Licence)

●licencja „wymuszająca” wolność kodu tj użytkownik:- może uruchamianiać program, analizować, modyfikować ikopiować 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 oprogramowanieZasada „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

Page 5: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

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

Page 6: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

Architektura środowiska graficznego w dystrubucji

GNU/Linux

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

system GNU

Xfree86

KDE Menedżer okien

Serwer grafiki

System operacyjny

X.org XGL

Gnome Fluxbox XFCE

Page 7: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

struktura katalogów systemu GNU/Linux

/bin/ <= podstawowe polecenia systemowe/boot/ <= pliki jąder ładowane przy uruchamianiu systemu/dev/ <= pliki specjalne jako interfejs do obsługi urządzeń/etc/ <= globalne pliki konfiguracyjne/home/ <= katalogi domowe użytkowników/lib/ <= biblioteki systemowe/mnt/ <= podmontowane napędy/proc/ <= pseudosystem plików jako interfejs do ustawień jądra/sbin/ <= usługi systemowe/tmp/ <= katalog plików tymczasowych/var/ <= dodatkowe dane programów (logi, skrypty, itp.) /usr/ <= inne, dodatkowe programy

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Page 8: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

podstawowe polecenia i narzędzia systemowe (unixowe)

● zarządzanie systemem i użytkownikamidf, du <= raport o zajętości dysku/katalogufuser <= identyfikacja procesów używających podane zasobyuname <= informacje o systemie i kerneluusers,who <= raport o aktualnie zalogowanych użytkownikachlast <= raport o ostatnio zalogowanych użytkownikachenv <= przegląd zmiennych systemowychadduser,useradd,deluser,userdel <= zarządzanie użytkownikamimodprobe, rmmod, lsmod <= operacje na tzw. modułach, odp.: załadowanie/ usunięcie z pamięci, listing

● zarządzanie procesamichroot <= umieszczanie procesu w środowisku izolowanymkill/killall/pkill <= zakończenie procesu po PIDzie/nazwie/atrybutachnice <= modyfikacja priorytetu wykonywania procesups, top <= listing uruchomionych procesów/ z odświeżaniemwatch <= podgląd na bieżąco działającego procesu

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Page 9: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

podstawowe polecenia i narzędzia systemowe c.d.

● zarządzanie plikami i systemem plikówchmod <= zmiana uprawnień plików lub katalogówchown <= zmiana właściciela plikucp, mv, rm, shred ,dd <= odpowiednio: kopiowanie, przenoszenie, usuwanie, bezpieczne usuwanie plików, kopiowanie bloków danychln <= tworzenie dowiązania między dwoma plikamils <= listing plików w katalogumkdir <= tworzenie katalogówpwd <= wypisanie bieżącego katalogumknod <= tworzenie węzłów specjalnych (dostępu do urządzenia)touch <= zmiana znacznika czasowego (ang. timestamp) pliku

● przetwarzanie tekstucat, tac <= wyświetlenie pliku/wypisanie liniami wsteczcut <= wyświetlenie fragmentów tekstugrep <= wyświetlenie linii tekstu zawierających dane wyrażeniehead,tail <= wyświetlenie poczatku/końca tekstusort <= sortowanie linii tekstu,uniq <= wyświetlenie tylko niepowtarzających się linii tekstuwc <= zliczenie słów/bajtów/linii w tekście

● pełna lista programów unixowych: http://en.wikipedia.org/wiki/List_of_Unix_programsporównanie poleceń systemowych na różnych systemach unixowych: http://bhami.com/rosetta.html

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Page 10: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

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

Page 11: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

Podstawy konfiguracji środowiska sieciowego systemu GNU/Linux

● modprobe/lsmod/rmmod <= zarządzanie modułem kartysieciowej

● ifconfig <= konfiguracja interfejsu sieciowego● route <= konfiguracja rutingu statycznego● netstat <= wyświetlanie otwartych gniazd

UDP, połączeń TCP, tablicy rutingu,itp.● ping, traceroute <= testowanie drożności tras

● /etc/hosts <= rozwiazywanie nazw(stat.)● /etc/resolv.conf <= rozwiązywanie nazw(dyn.)● /etc/hosts.{allow/deny} <= restrykcje dostępu do usług

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Page 12: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

ifconfig – zarządzanie interfejsami sieciowymi

ifconfig <interfejs> <IP> <opcje>

<interfejs> <= nazwa interfejsu (np. eth0, eth1, ppp0)<IP> <= numer IP przydzielony interfejsowi<opcje> mogą przyjmować przykładowe wartości:

up/down <= włączanie/wyłączanie interfejsunetmask <maska> <= ustawienie maski sieciowejarp <= włączanie/wyłączanie używania

protokołu ARP [-]promisc <= włączanie/wyłączanie trybu

promiscous (przechwytywaniewszystkich pakietów)

mtu <N> <= ustawienie MTUhw ether <MAC> <= ustawienie adresu MAC

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Page 13: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

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 <= ustawienie maski sieciowej Mgw GW <= trasowanie pakietów poprzez bramkę GWdev IF <= związanie trasy z podanym interfejsemmss M <= ustawienie MSS na M

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Page 14: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

route – przykład wyjścia polecenia

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Destination Gateway Genmask Flags Metric Ref Use Iface213.25.2.139 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

0.0.0.0 213.25.2.139 0.0.0.0 UG 0 0 0 ppp0

U - trasa jest zestawiona [up] H - cel jest stacją [host] G - użyj bramki [gateway] R - reinstancjuj trasę na trasowanie dynamiczne D - dynamicznie instalowana przez demona lub przekierowanie M - modyfikowana z demona trasowania lub przekierowania A - instalowana przez addrconf C - wpis bufora podręcznego [cache] ! - trasa odrzucenia [reject]

Page 15: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

netstat – przykład wyjścia polecenia (fragment)

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 0.0.0.0:8192 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:5222 0.0.0.0:* LISTENtcp 0 0 192.168.0.5:80 0.0.0.0:* LISTENtcp 0 22 83.26.26.21:3613 82.21.16.92:105 FIN_WAIT2tcp 131 0 83.26.26.21:4247 80.108.9.23:2456 TIME_WAITtcp 0 0 83.26.26.21:4662 83.24.14.20:3414 ESTABLISHEDudp 0 0 0.0.0.0:4666 0.0.0.0:*udp 0 0 127.0.0.1:53 0.0.0.0:*

Proto Ref Cnt Flags Type State I-Node Pathunix 16 [ ] DGRAM 983 /dev/logunix 2 [ACC] STREAM LISTENING 11375257 /var/run/mysqld.sock

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Page 16: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

/etc/hosts & /etc/resolv.conf – przykłady

● /etc/hosts

127.0.0.1 localhost192.168.1.10 foo.mydomain.org foo192.168.1.13 bar.mydomain.org bar146.82.138.7 master.debian.org master209.237.226.90 www.opensource.org

● /etc/resolv.conf

domain kis.p.lodz.plsearch kis.p.lodz.pl lab.kis.p.lodz.plnameserver 127.0.0.1nameserver 194.204.159.1

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Page 17: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

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

Page 18: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

hosts.{allow/deny} - przykłady

/etc/hosts.allowin.tftpd: LOCAL, host.domaintelnet: 10.0.0.8, .sub.domain (echo „uwaga!”)

/etc/hosts.denyALL : ALL: spawn /usr/bin/mail

Polecenie wywoływane(demon)

Źródło połączenia

Uruchomienie programu (opcjonalne)

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Page 19: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

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

Page 20: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

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

Page 21: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

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

piotrek server = (krzysiek) /usr/bin/last

Z prawami administratora (!)

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Page 22: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

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

●KomendyCmnd_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

Page 23: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

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 CUNETS = 128.138.0.0/255.255.0.0

Cmnd_Alias KILL = /usr/bin/kill

FULLTIMERS CUNETS = (DB) KILL

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Page 24: ZARZĄDZANIE SERWERAMI SIECIOWYMIamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych na przykładzie GNU/Linux (c) ... polecenia systemowe ... Można nastawić wykonanie

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