zarzĄdzanie serwerami sieciowymiamencwal.kis.p.lodz.pl/podyplomowe/podstawy_linux.pdf · unixowych...
TRANSCRIPT
ZARZĄDZANIE SERWERAMI SIECIOWYMI
mgr inż. Adam MencwalKatedra Informatyki Stosowanej
[email protected]://amencwal.kis.p.lodz.pl
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)
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
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
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
(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
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
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
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
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 <= 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
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
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
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]
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
/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
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.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
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
piotrek server = (krzysiek) /usr/bin/last
Z prawami administratora (!)
(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
●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
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
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