ZSS - cz. 1 - Sieci komputerowe - konfiguracja i administracja

Transkrypt

ZSS - cz. 1 - Sieci komputerowe - konfiguracja i administracja
Zarządzanie Serwerami Sieciowymi
Sieci komputerowe - konfiguracja i administracja
Studium podyplomowe KIS (PŁ)
mgr inŜ. Adam Sobczyk
e-mail: [email protected]
Zarządzanie Serwerami Sieciowymi
Terminarz zajęć 14-15.02.2008
Sobota, 14. 02. 2009:
Niedziela, 15. 02. 2009:
8.15-10.30 – Wykład,
10.45-13.45 – Laboratorium
8.15-10.30 – Wykład,
10.45-13.45 – Laboratorium
Uwaga: o godzinie 11:00 krótka przerwa na ankietę, którą
przeprowadzi p. Marta Ciabiada (KIS).
Wszystkie zajęcia odbywają się w sali 311:
Katedra Informatyki Stosowanej,
90-924 Łódź, ul. Stefanowskiego 18/22,
III piętro w budynku Wydziału Elektrotechniki, Elektroniki,
Informatyki i Automatyki PŁ.
Zarządzanie Serwerami Sieciowymi
Cel kursu i wymagania wstępne
Cel kursu - nabycie wiedzy teoretycznej i praktycznej z dziedziny
konfiguracji usług i aplikacji serwerowych:
konfiguracja filtru pakietów ‘netfilter’ z uŜyciem tablic ‘iptables’ –
narzędzie do realizacji funkcji routingu oraz firewall’a,
usługa DNS z uŜyciem programu ‘bind’ – mechanizmy i protokoły,
Usługa samba w GNU/Linux jako darmowy odpowiednik SMB
(„Otoczenie sieciowe”) w systemach Windows. Nawiązanie współpracy,
Usługi HTTP i FTP z uŜyciem aplikacji ‘Apache’ w środowisku
izolowanym za pomocą ‘chroot’,
Usługa e-mail na przykładzie oprogramowania ‘postfix’,
połączenia szyfrowane i sieci VPN, realizowane z uŜyciem protokołów
IPSec.
Wymagania wstępne - wiedza na temat aspektów funkcjonowania
sieci komputerowej:
warstw otwartego modelu ISO/OSI,
stosów protokołów TCP/IP oraz UDP/IP,
połączenia i podstawowa obsługa w systemach operacyjnych MS
Windows oraz GNU/Linux,
podstawy funkcjonowania urządzeń sieciowych, teorii informacji oraz
kryptografii.
Zarządzanie Serwerami Sieciowymi
Zakres wykładu i ćwiczeń laboratoryjnych
1.
2.
3.
4.
5.
6.
7.
8.
Konfiguracja połączenia sieciowego w systemie
GNU/LINUX. Routing statyczny,
Usługa DNS - konfiguracja serwera ‘bind’,
Zasada działania protokołu HTTP. Konfiguracja serwera
‘apache’,
Zasada działania protokołów FTP. Konfiguracja serwera
‘vsftpd’,
Samba jako serwer plików w 'Otoczeniu sieciowym' MS
Windows,
Szyfrowanie połączenia przy wykorzystaniu IPSec.
Kryptografia symetryczna i asymetryczna, certyfikaty,
podpis elektroniczny.
System pocztowy na przykładzie ‘Postfix’,
Filtracja i modyfikacja pakietów za pomocą ‘iptables’.
Mechanizm NAT - konfiguracja zaawansowana,
Konfiguracja połączenia sieciowego w
systemie GNU/LINUX. Routing statyczny
Charakterystyka ogólna
cechy funkcjonalne
zakres stosowalności
Podstawowe pojęcia i reguły:
adres, maska, brama, trasa
kluczowe polecenia – ifconfig, route, ping, netstat
Routing statyczny
Charakterystyka ogólna (1)
•
Routing statyczny jest podstawową metodą
routingu. Polega na ręcznym dodawaniu
wpisów (marszrut) do tablicy routingu
przez administratora.
•
W podejmowaniu decyzji router kieruje się
jedynie ustawionymi przez administratora
trasami (z metrykami przypisanymi na stałe).
W szczególności:
–
–
–
•
router podejmuje decyzje bazując na
adresie IP hosta docelowego zawartym w
pakiecie,
wszystkie urządzenia na całej drodze
pakietu uŜywają tego adresu IP, aby
przesłać dane we właściwe miejsce,
aby router podejmował właściwe decyzje
musi wiedzieć jaka jest trasa do odległej
sieci.
W przypadku routingu statycznego, router:
–
–
nie reaguje na zmiany w topologii sieci,
nie oblicza samodzielnie najbardziej
optymalnej ścieŜki dla danego pakietu.
Routing statyczny
Charakterystyka ogólna (2)
•
Router zaprogramowany do
trasowania statycznego przesyła
pakiety przez określone porty. Po
skonfigurowaniu routerów nie jest
konieczne poznawanie tras ani
przesyłanie informacji na ich temat
(rola routerów ograniczona wyłącznie
do przesyłania pakietów).
•
Trasowanie statyczne sprawdza
się jedynie w przypadku bardzo
małych sieci, w których przesyłanie
danych do wszystkich punktów
docelowych odbywa się po tych
samych ścieŜkach.
•
W małych sieciach (LAN)
trasowanie statyczne jest
zazwyczaj najlepszym
rozwiązaniem, gdyŜ nie wymaga
dodatkowego pasma na
poznawanie tras i komunikację z
innymi routerami. Jest teŜ
względnie proste.
Routing statyczny
Charakterystyka ogólna (3)
•
W miarę rozrastania się sieci i
tworzenia w niej nowych połączeń,
utrzymanie rutowania statycznego
staje się coraz bardziej pracochłonne.
•
Po kaŜdej zmianie w dostępności
routerów lub urządzeń transmisyjnych
(awarie, rekonfiguracje,
niedostępności) w sieciach
MAN/WAN konieczne jest ich ręczne
sprawdzanie i przeprogramowywanie.
•
Dlatego sieci rozległe (MAN/WAN),
gdzie konieczne jest korzystanie z
wielu ścieŜek, bezwzględnie
wymagają stosowania trasowania
dynamicznego.
Routing statyczny
Podstawowe pojęcia i reguły (1)
Podstawowe parametry adresowe IP urządzenia:
Adres – identyfikuje urządzenie w sposób unikalny w (danej) sieci IP,
Maska – pozwala na określenie przez urządzenie, do jakiej sieci IP naleŜy. Do
tej sieci urządzenie będzie wysyłać pakiety bezpośrednio na swój interfejs
sieciowy.
salsolo@ubuntu:~$ ifconfig ppp0
ppp0
Link encap:Point-to-Point Protocol
inet addr:79.162.44.97 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:541 errors:0 dropped:0 overruns:0 frame:0
TX packets:685 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:145414 (145.4 KB) TX bytes:92955 (92.9 KB)
Procedura obsługi ruchu w węźle IP jest dokonywana z osobna dla kaŜdego
pakietu IP, pojawiającego się w węźle (w routingu IP, realizowanym w warstwie 3ej modelu OSI/ISO nie wyróŜnia się połączeń, które pojawiają się dopiero w
warstwie 4-ej - transportowej):
Jeśli adres docelowy pakietu zgadza się z lokalnym adresem – odbieram pakiet i
kończę przetwarzanie
W przeciwnym wypadku sprawdzam czy tablica routingu zawiera wpis pasujący do
adresu docelowego pakietu:
NIE – odrzucamy pakiet,
TAK – przesyłamy zgodnie z pasującym wpisem w tablicy routingu.
KaŜdy węzeł IP (router, komputer etc.) posiada tablicę routingu i postępuje wg
powyŜszego algorytmu.
Routing statyczny
Podstawowe pojęcia i reguły (2)
Definicja trasy routingu składa się z warunku (adres i maska) oraz
przypisanej do niego akcji (wysyłanie):
Jeśli adres docelowy równa się danemu lub naleŜy do jego sieci to
Wyślij pakiet przez wskazany interfejs (dostarczanie lokalne lub do innego
urządzenia trasującego (dostarczanie zdalne).
salsolo@ubuntu:~$ route
Kernel IP routing table
Destination
Gateway
10.64.64.64
*
link-local
*
default
10.64.64.64
Genmask
255.255.255.255
255.255.0.0
0.0.0.0
Flags
UH
U
UG
Metric
0
1000
0
Ref
0
0
0
Use
0
0
0
Iface
ppp0
ppp0
ppp0
Brama (trasa) domyślna – trasa o warunku 0.0.0.0/0, pasują do niej
wszystkie adresy docelowe:
maska ma długość 0 bitów - nie porównujemy Ŝadnych bitów adresu
docelowego pakietu,
ma najniŜszy moŜliwy priorytet (najkrótsza moŜliwa maska),
zostanie uŜyta, gdy adres nie będzie pasował do Ŝadnego innego wpisu w
tablicy routingu.
Aby urządzenie mogło wysyłać dane do innych sieci, naleŜy wpisać do tablicy
routingu dodatkowe trasy.
Routing statyczny
Podstawowe pojęcia i reguły (3)
Uwaga: dodanie do interfejsu adresu IP z określoną maską, powoduje
automatyczne dopisanie do tablicy routingu wpisu w postaci:
Jest to tzw. dostarczanie lokalne:
Warunek - adres sieci otrzymany z dopisanego adresu IP i maski sieci,
Akcja - wyślij dane bezpośrednio na interfejs na którym znajduje się adres
naleŜący do sieci podanej w warunku.
jeśli interfejs ma adres naleŜący do jakiejś sieci, to jest ona do niego
bezpośrednio podłączona. Jak widać, błędne przypisanie adresu IP oraz
maski sieci do danego interfejsu spowoduje błędu w routingu do całej
sieci, którą definiuje błędnie przypisana para: adres/maska,
Urządzenie docelowe musi być podłączone do tej samej sieci fizycznej, co
podłączany interfejs przez który wysyłany jest pakiet - inaczej zostanie on
zignorowany.
Dostarczanie lokalne jest ostatnim etapem trasy pakietu przez sieć.
Na przykład: dopisanie do interfejsu eth0 adresu 192.168.3.8/16 (z
maską 255.255.0.0) spowoduje utworzenie wpisu w tablicy routingu,
kierującego cały ruch do sieci 192.168.0.0/16 (czyli na wszystkie
adresy zaczynające się od „192.168”) na interfejs eth0.
Routing statyczny
Podstawowe pojęcia i reguły (4)
Konfiguracja interfejsu sieciowego:
sudo ifconfig -a eth0 inet up netmask 255.255.255.0 192.168.1.1
Sprawdzenie konfiguracji wszystkich interfejsów sieciowych:
sudo ifconfig –a
Sprawdzenie dostępności zdalnego interfejsu:
sudo ping -f 192.168.1.2
Uwaga: opcja '-f' powoduje zalew pingami ('ICMP echo request flood')
Wyświetlenie aktualnej tablicy routingu:
route
Kernel IP routing table
Destination
Gateway
Genmask
Flags Metric Ref
Use Iface
10.64.64.64
*
255.255.255.255 UH
0
0
0 ppp0
192.168.1.0
*
255.255.255.0
U
0
0
0 eth0
link-local
*
255.255.0.0
U
1000
0
0 ppp0
default
10.64.64.64
0.0.0.0
UG
0
0
0 ppp0
Usługa DNS.
Konfiguracja serwera ‘bind’
Usługa DNS – co to takiego?
Instalacja serwera ‘bind’
Konfiguracja serwera ‘bind’
Zarządzanie Serwerami Sieciowymi
Usługa DNS – co to takiego? (1)
DNS (Domain Name System), to system nazw domenowych, realizowany
poprzez:
Dzięki DNS nazwa mnemoniczna URL, np. www.wp.pl, moŜe zostać
zamieniona na odpowiadający jej adres IP:
Adresy DNS składają się z domen internetowych rozdzielonych kropkami – na
przykład:
www.wp.pl,
.pl - domena geograficzna, właściwa dla organizacji,
.wp. - domena naleŜącą do organizacji „Wirtualna Polska”,
www. – tzw. alias serwera w domenie „wp.pl”, który oferuje usługi HTTP (WWW) w sieci
publicznej (Internet).
W ten sposób moŜliwe jest budowanie hierarchii nazw, które porządkują
Internet.
DNS to złoŜony system komputerowy oraz prawny, zapewniający:
system serwerów,
protokół komunikacyjny zapewniający zamianę adresów znanych uŜytkownikom Internetu
(URL) na adresy zrozumiałe dla urządzeń sieciowych (IP).
rejestrację nazw domen internetowych i ich powiązanie z numerami IP,
realizuje bieŜącą obsługę komputerów odnajdujących adresy IP odpowiadające
poszczególnym nazwom.
Istnieje moŜliwość włączenia do systemu DNS serwera, który nie dysponuje
stałym, publicznym adresem IP. Jest to tzw. usługa „DynDNS”. Przykład strony
realizującej tę usługę: http://www.dyndns.com/.
Zarządzanie Serwerami Sieciowymi
Usługa DNS – co to takiego? (2)
Więcej informacji ogólnych na temat DNS:
Struktura domen
Administracja DNS
Instytucje administrujące DNS na świecie
Instytucje administrujące DNS w Polsce
Techniczna strona DNS
Ogólny zarys
NajwaŜniejsze cechy
RFC
Główne serwery DNS
Rodzaje zapytań DNS
Odpowiedzi na zapytania
Protokół DNS
Przykład działania systemu DNS
Typy rekordów DNS
Bezpieczeństwo
znajdziemy na stronie:
http://pl.wikipedia.org/wiki/DNS
Zarządzanie Serwerami Sieciowymi
Usługa DNS – instalacja serwera ‘bind’
Instalujemy pakiety ‘bind9’ oraz ‘dnsutils’:
aptitude install bind9 dnsutils
‘dnsutils’ –zawiera oprogramowanie testujące, m.in.: ‘dig’, ‘nslookup’, ‘bind9-host’.
alternatywą do instalacji z poziomu konsoli jest skorzystanie z MenedŜera
pakietów ‘Synaptic’ (zalecane rozwiązanie).
Pliki konfiguracyjne znajdują się w katalogu:
/etc/bind/
Mamy trzy główne pliki konfiguracujne:
named.conf
named.conf.local
named.conf.options
Przechodzimy do pliku:
named.conf.local
od którego zaczynamy konfigurację. W powyŜszym pliku definiujemy strefy.
Strefa - obszar serwera DNS odpowiedzialny za daną domenę. Zawsze
definiujemy parę stref: zwykłą i odwrotną. Strefa zwykła zawiera plik
bazodanowy, odpowiedzialny za deklarację nazw hostów w obszarze jednej
domeny.
Strefa odwrotna - zawiera plik bazodanowy zawierający odwzorowanie nazw
hostów na adresy IP w obrębie domeny.
Zarządzanie Serwerami Sieciowymi
Usługa DNS - konfiguracja serwera ‘bind’ (1)
Budowa stref (plik: ‘named.conf.local’):
//strefa zwykła
zone „kowalski" {
type master;
file "/etc/bind/db.kowalski";
};
//strefa odwrotna
zone „0.1.10.10.in.addr-arpa" {
type master;
file "/etc/bind/db.10101";
};
‘type master’ – określa charakter serwera DNS. Master oznacza
serwer nadrzędny,
W strefach deklarujemy ścieŜkę do plików bazodanowych do których
serwer DNS będzie odwoływał się. Pliki te tworzymy sami,
Dyrektywa ‘zone’ określa nazwę domeny np.: zone ”kowalski”.
Zarządzanie Serwerami Sieciowymi
Usługa DNS - konfiguracja serwera ‘bind’ (2)
Opis plików bazodanowych - plik dla strefy
zwykłej (‘db.kowalski’):
$TTL 604800 // określa czas
odświeŜania pliku w sekundach
Po SOA wpisujemy nazwę hosta, na
którym jest zainstalowany serwer DNS, po
kropce nazwę naszej domeny, którą
tworzymy (w tym przypadku: kislab.kowalski).
Charakterystyczna jest kropka po nazwie
Zarządzanie Serwerami Sieciowymi
Usługa DNS - konfiguracja serwera ‘bind’ (3)
Definicja serwerów nazw - NS (‘NameServer’):
@
IN
NS
Definicja hostów w strefie - wpisujemy nazwy, które przypisujemy adresowi IP:
localhost
kis-lab
kis-lab.kowalski.
IN
IN
A
A
127.0.0.1
10.10.0.x
CNAME oznacza alias do hosta, np. www to alias do hosta ‘kis-lab’, który jest
przypisany do domeny ‘kowalski’
Jego końcowa nazwa, to: kis-lab.kowalski == //www.kowalski):
ftp
www
IN
IN
CNAME
CNAME
kis-lab
kis-lab
Zarządzanie Serwerami Sieciowymi
Usługa DNS - konfiguracja serwera ‘bind’ (4)
Opis plików bazodanowych - plik dla strefy odwrotnej (‘db.10101’):
Zasada budowy jest analogiczna jak pliku dla strefy zwykłej
Występuje wpis PTR (pointer) zamiast NS
Ten plik „odwraca” (zamienia) nazwy hosta na adresy IP.
$TTL 604800
@ IN
SOA kis-lab.kowalski. admin.kowalski. (
2009021001 ; Serial# - przy kaŜdej edycji trzeba inkrementować
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; Negative Cache TTL
@ IN
NS kis-lab.kowalski.
x.0.10 IN PTR kis-lab //dopisujemy wszystkie hosty w sieci,
// x to końcówka adresu IP
Zarządzanie Serwerami Sieciowymi
Usługa DNS - konfiguracja serwera ‘bind’ (5)
Przechodzimy do pliku ‘named.conf.options’
Wpisujemy adresy sieci, które mogą korzystać z serwera DNS (skąd mogą być
zadawane zapytania):
allow-query { 127.0.0.1; 10.10.0.0/24; };
Wpisujemy serwery pomocnicze, do których będzie odnosił się DNS:
forwarders {
10.10.0.1; // adres NS, który jest przechowywany na lokalnym serwerze
194.204.152.34; // adresy innych znanych serwerów DNS
194.204.159.1;
};
DHCP
Zarządzanie Serwerami Sieciowymi
Usługa DNS - konfiguracja serwera ‘bind’ (6)
Modyfikujemy plik ‘/etc/resolv.conf’, wpisując w nim w kolejności:
Search kowalski
nameserver 127.0.0.1
Spowoduje to nakierowanie resolver’a na odpytywanie lokalnego serwera DNS pod
wskazany adres.
Uwaga: ‘resolver’ jest usługą odpytującą serwery DNS o zadany adres. W obecnych
czasach jest to narzędzie wbudowane w kaŜdą aplikację uŜywającą adresów URL i
dlatego nie wymaga instalacji dedykowanego klienta.
Po konfiguracji restartujemy skrypt:
/etc/init.d/bind9 restart
Uwaga: ‘bind9’ uruchamia się takŜe wraz z ponownym startem systemu (tworzony jest
skrypt startujący w katalogu: ‘/etc/init.d/’):
Działanie domeny sprawdzamy poleceniem:
dig kis-lab.kowalski
lub:
nslookup ‘nazwa_domeny’
Warto teŜ sprawdzić wynik działania dla innych nazw domen ☺.
Usługa serwera HTTP (WWW).
Konfiguracja serwera ‘apache’
WWW, HTTP, ‘apache’ – co to takiego?
Instalacja serwera ‘apache’
Konfiguracja serwera ‘apache’
Zarządzanie Serwerami Sieciowymi
WWW – co to takiego?
World Wide Web (w skrócie: WWW lub Web) – hipertekstowy, multimedialny,
sieciowy (TCP/IP) system informacyjny oparty na publicznie dostępnych, otwartych
standardach IETF i W3C.
Podstawowym zadaniem WWW jest publikowanie informacji w przystępnej
formie. WWW jest często błędnie utoŜsamiane z całym Internetem lecz stanowi jego
najpopularniejszą usługę.
Dostęp do WWW uzyskujemy za pomocą tzw. przeglądarki internetowej, która
łączy się z serwerem internetowym i pobiera z niego zbiór informacji zwany „stroną
internetową”. Strona internetowa moŜe zostać wyświetlona, zapisana w lokalnym
systemie plików lub wydrukowana.
Zawartość strony internetowej jest tzw. hipertekstem (skrypty
HTML/XHTML), oferującym moŜliwość podąŜania za tzw. hiperłączami,
przenoszącymi do innych stron internetowych w ramach tego samego lub innych
serwerów internetowych.
WWW został zapoczątkowany we wczesnych latach dziewięćdziesiątych w CERN
(Szwajcaria) jako system dostępu do informacji (w tym graficznych) w duŜej
organizacji naukowej.
Prototyp systemu WWW został zbudowany przez Tima Berners-Lee. WWW
szybko przekroczył (podobnie jak cała sieć Internet) granice środowiska
naukowego, a po kilku latach został zaakceptowany i zaadaptowany na całym
świecie.
Na zwiększenie popularności WWW miało znaczny wpływ ogłoszenie w lutym
1993 r. przez Uniwersytet w Minnesocie zamiaru pobierania opłat licencyjnych za
korzystanie z ich implementacji serwera usługi ‘Gopher’.
Zarządzanie Serwerami Sieciowymi
HTTP – co to takiego?
HTTP (Hypertext Transfer Protocol), to protokół przesyłania dokumentów
hipertekstowych na potrzeby realizacji usługi WWW. Aktualna definicja HTTP
jest zawarta w dokumencie RFC 2616.
HTTP jest protokołem typu „klient-serwer” - połączenie zawsze inicjowane
jest przez tzw. klienta (zwykle przeglądarka WWW) i ma na celu pobranie lub
wysłanie informacji z/do serwera. Za pomocą protokołu HTTP przesyła się m.in.:
HTTP zapewnia znormalizowany sposób komunikowania się komputerów
poprzez określenie formy Ŝądań danych (klient) oraz formę odpowiedzi (serwer).
HTTP jest protokołem bezstanowym (‘stateless’), gdyŜ nie zachowuje
informacji o poprzednich transakcjach, co pozwala zmniejszyć obciąŜenie serwera.
Bezstanowość HTTP moŜe być kłopotliwa, gdy potrzeba zapamiętać stan
uŜytkownika, który wcześniej łączył się juŜ z serwerem. Popularne rozwiązania
tego problemu, to:
Ŝądania udostępnienia dokumentów WWW,
informacje o „kliknięciu odnośnika”,
informacje z wypełnionych formularzy. Zadaniem stron WWW jest publikowanie informacji
– natomiast protokół HTTP właśnie to umoŜliwia.
mechanizm tzw. ciasteczek (‘cookies’),
sesje realizowane po stronie serwera (wyjątek od zasady działania w architekturze „klientserwer”),
ukryte parametry, przesyłane np. przez stronę z formularzem,
parametry umieszczone w ciągu URL (np. /index.php?newuserid=55).
HTTP standardowo korzysta z portu (TCP) nr 80 (lub 8080 w przypadku
stosowania w sieci mechanizmów NAT/PAT w sieci lokalnej).
Więcej informacji na temat HTTP: http://pl.wikipedia.org/wiki/HTTP.
Zarządzanie Serwerami Sieciowymi
‘apache’ – co to takiego?
‘apache’ to otwarty serwer HTTP, dostępny dla wielu systemów operacyjnych
(m.in. UNIX, GNU/Linux, BSD, MS Windows). Jest najszerzej stosowanym
serwerem HTTP w Internecie (niezmiennie od kilku lat ponad 50% udziału wśród
serwerów WWW).
‘apache’ w połączeniu z interpreterem PHP i bazą MySQL, to jedno z
najczęściej spotykanych środowisk w firmach oferujących hosting WWW.
Cechy serwera i obsługiwane moduły:
wielowątkowość,
skalowalność,
bezpieczeństwo,
Kontrola dostępu/uwierzytelnianie: ‘mod_access’,
CGI,
Proxy typu HTTP, FTP, CONNECT: ‘mod_proxy’,
SSI: ‘mod_include’,
Content-Negotation: ‘mod_negotation’,
Moduł URL-Rewriting: ‘mod_rewrite’,
SSL: ‘mod_ssl’,
moŜliwość osadzania interpreterów języków skryptowych, np. ‘mod_perl’, ‘mod_php’,
‘mod_python’.
Więcej informacji: http://pl.wikipedia.org/wiki/Apache_(serwer).
Zarządzanie Serwerami Sieciowymi
Instalacja serwera ‘apache’
•
Instalacja pakietu ‘apache’:
aptitude install apache2
•
Alternatywne (i zalecane)
rozwiązanie, to uŜycie
„MenedŜera instalacji i
aktualizacji aplikacji” czyli
‘Synaptic’ ->
•
PołoŜenie katalogu z
zainstalowanym serwerem
‘apache2’:
/etc/apache2
Zarządzanie Serwerami Sieciowymi
Konfiguracja serwera ‘apache’ (1)
Plik konfiguracyjny:
/etc/apache2/apache2.conf
W pliku konfiguracyjnym znajdziemy odwołania do innych plików i folderów z
katalogu ‘/etc/apache2/’:
‘port.conf’ – deklaracja portu na którym działa apache2 (jeśli nie
zmieniane, to 80),
‘sites-enabled’ – katalog z plikami konfiguracyjnymi VirtualHost'ów,
‘mods-enabled’ – katalog z plikami konfiguracyjnymi modułów.
Za pomocą uŜytkowników wirtualnych (virtualhosts) moŜna tworzyć wiele
stron i serwisów - korzystając z tego samego adresu IP (rózne serwisy WWW w
jednej domenie i na tym samym realnym serwerze) !!!
Zarządzanie Serwerami Sieciowymi
Konfiguracja serwera ‘apache’ (2)
Konfiguracja ‘virtualhost’'a jako strony informacyjnej. Edytujemy plik konfiguracyjny:
/etc/apache2/sites-enabled/000-default
Plik ten powiązany jest symbolicznie z odpowiednim pliku w katalogu:
/etc/apache2/sites-available/default.
Z kolei w/w katalog nie ma odwołań w pliku konfiguracyjnym ‘apache2.conf’ więc nie wpływa
dalej na konfigurację serwera. Przykładowa zawartość tego pliku (konfiguracja okrojona do
niezbędnego minimum):
<VirtualHost 127.0.0.1:80>
ServerAdmin [email protected]
ServerName localhost
DocumentRoot /var/www/
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
</VirtualHost>
Zarządzanie Serwerami Sieciowymi
Konfiguracja serwera ‘apache’ (3)
<VirtualHost 127.0.0.1:80> - deklaracja adresu IP oraz portu (moŜna równieŜ wpisać nazwę
hosta 127.0.0.1 – w tym przypadku ‘localhost’), na którym działa virtualhost. Tą dyrektywą
rozpoczyna się kaŜdy plik konfiguracyjny virtualhost'a
ServerAdmin [email protected]
DocumentRoot /var/www/ - deklaracja katalogu ze stroną informacyjną
<Directory /></Directory> - dyrektywy zamykające grupy innych dyrektyw
Options - dyrektywa stwierdzająca które cechy serwera są dostępne
Indexes - dyrektywa ta pokazuje wylistowane pliki z katalogu jeśli nie ma pliku index.html
FollowSymLinks - cecha serwera zezwalająca na powiązania symboliczne w zadeklarowanym
katalogu /var/www
MultiViews - cecha serwera zezwalająca na negocjowanie zawartości katalogu ‘/var/www’ chodzi o moŜliwość wyświetlania języków skryptowych, plików graficznych itp. Jeśli ustawiona, w
pierwszej kolejności wyświetla pliki ‘.html’
AllowOverride None - zabrania nadpisywania pliku konfiguracyjnego virtualhost'a przez pliki
‘.htaccess’, mogące zawierać predefiniowane opcje. W naszym przypadku plik ten nie występuje
ale gdyby pojawił się, zostanie pominięty
Order allow,deny - kontroluje dostęp. Najpierw są sprawdzane wszystkie dyrektywy określone
parametrem ‘allow’ (przynajmniej jedna musi pasować - inaczej Ŝądanie dostępu zostanie
odrzucone). Następnie wszystkie dyrektywy ‘deny’ są sprawdzane – jeśli jakaś pasuje, dostęp
zostanie odrzucony. W ostateczności, gdy Ŝadna z dwóch dyrektyw nie pasuje, domyślnie dostęp
jest odrzucany.
allow from all - dyrektywa stwierdzająca domyślne zezwolenie na wyświetlanie wszystkich
plików w katalogu.
- deklaracja adresu email administratora
Zarządzanie Serwerami Sieciowymi
Konfiguracja serwera ‘apache’ (4)
Po kaŜdej zmianie w plikach konfiguracyjnych naleŜy zrestartować serwer
‘apache’:
/etc/init.d/apache2 restart
Dla sprawdzenia poprawności konfiguracji moŜemy dokonać zmian w pliku:
/var/www/index.html
i po wpisaniu w przeglądarce adresu ‘127.0.0.1’ lub ‘localhost’ zaobserwować
zmiany.
Aktywujemy moduł ‘userdir’, który zezwala kaŜdemu uŜytkownikowi na
ekspozycję zawartości katalogu o ustalonej nazwie poprzez serwer ‘apache’:
a2enmod userdir
‘a2enmod’ - komenda aktywująca moduły dla serwera apache
‘a2dismod’ – komenda dezaktywująca moduły dla serwera apache
Moduły raz aktywowane są uruchamiane wraz ze startem serwera. MoŜliwe do
aktywowania moduły znajdują się w katalogu:
/etc/apache2/mods-enabled/
Zarządzanie Serwerami Sieciowymi
Konfiguracja serwera ‘apache’ (5)
Plik konfiguracyjny modułu znajduje się w katalogu:
/etc/apache2/mods-enabled/userdir.conf
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch
IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
</IfModule>
Zarządzanie Serwerami Sieciowymi
Konfiguracja serwera ‘apache’ (6)
Składnia pliku konfiguracyjnego modułu jest podobna do składni pliku
konfiguracyjnego virtualhost'a.
<Directory /home/*/public_html> - dyrektywa wskazująca katalog, który ma
być wyeksponowany przez serwer ‘apache’ po wpisaniu w przeglądarce:
http://127.0.0.1/~*
gdzie: ‘*’ określa dowolnego uŜytkownika. Tego parametru nie zmieniamy. MoŜna
za to zmienić nazwę katalogu ‘public_html’ na bardziej czytelną.
Aby katalog podany w pliku konfiguracyjnym modułu czyli ‘public_html’ był
tworzony wraz z tworzeniem konta uŜytkownika, musimy go zdefiniować w
katalogu:
‘/etc/skel/public_html’
Wszystkie katalogi i pliki zawarte w katalogu ‘/etc/skel/’ bedą
dodawane do kaŜdego nowo-utworzonego katalogu uŜytkownika !!!
Dla sprawdzenia działania modułu moŜna zmianić nazwę katalogu
‘public_html’ na ‘www’. Po kaŜdej zmianie w plikach konfiguracyjnych
‘apache2’, ‘virtualhost‘ów’ oraz modułów restartujemy serwer ‘apache’ komendą:
/etc/init.d/apache2 restart
Zarządzanie Serwerami Sieciowymi
Konfiguracja serwera ‘apache’ (7)
Skrypt inicjacyjny uruchamiający serwer ‘apache’ znajduje się w pliku
‘/etc/init.d/apache2’. Wywołujemy go instrukcją:
/etc/init.d/apache2
PowyŜsza instrukcja występuje z parametrami start, stop, restart, forcereload. Uwaga: W przypadku kiedy nastąpi błąd przy wywołaniu powyŜszych
instrukcji dokonujemy „zabicia” procesu instrukcją:
killall apache2
a następnie ponownie uruchamiamy usługę za pomocą:
/etc/init.d/apache2 start
Uwaga: Aby dodać (lub usunąć) aplikację, aby uruchamiała się podczas startu
uŜywamy polecenia:
update-rc.d ‘nazwa_skryptu’ default
update-rc.d ‘nazwa_skryptu’ remove
‘nazwa_skryptu’ – nazwa skryptu taka, jak w ‘init.d’ czyli ‘apache2’
default/remove –domyślne wartości procesu uruchamiania/usuwanie.
Uwaga: ‘apache’ po instalacji uruchamia się domyślnie podczas startu wraz ze
wszystkimi dodanymi modułami.
Zarządzanie Serwerami Sieciowymi
Konfiguracja serwera ‘apache’ (8)
Dodanie uŜytkownika serwera ‘apache’ następuje po dodaniu go w systemie. Robimy
to wpisując komendę:
useradd -m -s /bin/false nazwa_usera
-m – określa parametry domyślne. Katalog domyślny to ‘/home/nazwa_/user’
-s - określa powłokę. Jeśli /bin/false to uŜytkownik nie będzie mógł zalogować
się do systemu poniewaŜ taka powłoka nie istnieje.
Pozostałe parametry uruchomieniowe komendy ‘useradd’:
- g – zdefiniowanie grupy
- G – zdefiniowanie wielu grup
- d – określa katalog uŜytkownika
- c – ustawia komentarz
- e – ustawia datę wygaśnięcia konta w formacie: rok/miesiąc/dzień
Komenda ‘useradd – D’ pokaŜe wartości domyślne. Konta zostały stworzone bez
haseł. NaleŜy je dodać komendą ‘paswwd’:
passwd nazwa_usera
Alternatywnie moŜna skorzystać z graficznego trybu i programu ‘users-admin’
(uruchomienie z poziomu konsoli).
Uwaga: Wszystkie powyŜsze polecenia wykonujemy jako ‘root’ lub uŜywając
komendy ‘sudo’.

Podobne dokumenty