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

Podobne dokumenty