ex10 s3 25052009

background image

Kamil Michalak

ID 4.3

25.05.2009

ĆWICZENIE X

KONFIGURACJA SERWERA APACHE, SSL

Zajęcia laboratoryjne w dniu 25.05.2009 zostały stworzyły możliwość zapoznania się z

instalacją, konfiguracją oraz administracją serwera HTTP jakim jest Apache.

Jak zwykle pierwsze kroki polegały na sprawdzeniu zainstalowanego na maszynie

oprogramowania.

$ rpm ­q httpd openssl mod_ssl

Polecenie powinno zwrócić wynik podobny do poniższego

httpd­2.2.11­2.fc10.i386
openssl­0.9.8g­13.fc10.i686

mod_ssl­2.2.11­2.fc10.i386

W przeciwnym wypadku konieczne jest doinstalowania powyższych pakietów przy pomocy yuma
lub ze źródeł. Dodatkowo możemy również zainstalować pakiet PHP5. Przyda się on w
późniejszych testach wydajności serwera.

Jeżeli instalacja przebiegnie pomyślnie w pasku adresu przeglądarki internetowej możemy

wpisać adres

http://localhost/

. Powinniśmy zobaczyć taką stronę

APACHE

Otwieramy teraz plik /etc/httpd/conf/httpd.conf. Plik konfiguracyjny jest bardzo długi, więc

na nasze potrzeby kierujemy zainteresowanie wyłącznie na kilka linijek.

Pierwszą z nich jest ServerTokens Min. Upewniamy się, że przypisaną mamy tu wartość

Min. Linia ta informuje jakie informacje wysyłane będą do przeglądarki przez serwer. Aby

Ilustracja 1: Strona testowa serwera Apache

background image

zwiększyć bezpieczeństwo zmniejszamy wiedzę otoczenia
Następnie ustawiamy wartość Timeout na 120. Jest to czas oczekiwania na odebranie żądania GET,
maksymalny czas pomiędzy odebraniem kolejnych pakietów żądania PUT lub POST.
Zaraz potem ustawiamy KeepAlive On, MaxKeepAliveRequests 100 oraz KeepAliveTimeout 15.
Pierwsza opcja odpowiada za to czy należy podtrzymać połączenie pomiędzy żądaniami od klienta.
Druga ile żądań będzie obsłużonych podczas jednego połączenia z klientem. Tutaj sugerowane duże
wartości dla dużej wydajności serwera. Ostatnia zaś mówi serwerowi ile sekund czekać przed
zamknięciem połączenia po zakończeniu obsługi żądania.
W kolejnym kroku kierujemy swoje spojrzenie na linię Listen 80 dopisując zaraz za nią kolejną
linię Listen 8080. Dodajemy w ten sposób kolejny port nasłuchiwania serwera.

Czasami taka konfiguracja jest wystarczająca. Zdarza się jednak, że nasze strony

internetowe mają problemy z poprawnym wyświetlaniem polskich znaków. Korzystamy w tedy z
linijki AddDefaultCharset UTF-8. To kodowanie zapewnia poprawną obsługę polskich liter.
Zostaje nam tylko zmienić kodowanie plików stron na UTF-8, co swoją drogą w coraz większej
skali staje się standardem internetowym.

Innym, konkurencyjnym serwerem HTTP jest Lighttpd. Faktem godnym zauważenia jest

jego wydajność. Krótki test przeprowadzony przy pomocy programu ab (Apache HTTP server
benchmarking tool) pokazał, że Lighttpd jest szybszy od Apache'a. Wynik testu renderowania
prostej strony napisanej w PHP (kalendarz roczny) przedstawiają poniższe tabele.

APACHE

This is ApacheBench, Version 2.0.40­dev <$Revision: 1.146 $> apache­2.0

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient).....done

Server Software:        Apache/2.2.3
Server Hostname:        127.0.0.1

Server Port:            80

Document Path:          /index.php
Document Length:        400 bytes

Concurrency Level:      1

Time taken for tests:   0.7221 seconds
Complete requests:      1

Failed requests:        0
Write errors:           0

Non­2xx responses:      1
Total transferred:      579 bytes

HTML transferred:       400 bytes
Requests per second:    138.48 [#/sec] (mean)

Time per request:       7.221 [ms] (mean)
Time per request:       7.221 [ms] (mean, across all concurrent requests)

Transfer rate:          0.00 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/­sd] median   max

Connect:        0    0   0.0      0       0
Processing:     7    7   0.0      7       7

Waiting:        6    6   0.0      6       6
Total:          7    7   0.0      7       7

background image

LIGHTTPD

This is ApacheBench, Version 2.0.40­dev <$Revision: 1.146 $> apache­2.0

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient).....done

Server Software:        lighttpd/1.4.22
Server Hostname:        127.0.0.1

Server Port:            80

Document Path:          /index.php
Document Length:        345 bytes

Concurrency Level:      1

Time taken for tests:   0.749 seconds
Complete requests:      1

Failed requests:        0
Write errors:           0

Non­2xx responses:      1
Total transferred:      498 bytes

HTML transferred:       345 bytes
Requests per second:    1335.11 [#/sec] (mean)

Time per request:       0.749 [ms] (mean)
Time per request:       0.749 [ms] (mean, across all concurrent requests)

Transfer rate:          0.00 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/­sd] median   max

Connect:        0    0   0.0      0       0
Processing:     0    0   0.0      0       0

Waiting:        0    0   0.0      0       0
Total:          0    0   0.0      0       0

SSL

Kiedy podstawową konfigurację serwera mamy już za sobą, pora na zwiększenie

bezpieczeństwa.

Otwórzmy raz jeszcze plik /etc/httpd/conf/httpd.conf. Upewniamy się, czy obecna jest linia

Include conf.d/*.conf. Pozwoli ona na wykorzystanie plików konfiguracyjnych w katalogu
/etc/httpd/conf.d/.

Otwieramy plik /etc/httpd/conf.d/ssl.conf. Sprawdzamy, gdzie przetrzymywane są pliki

kluczy. W tym przypadku jest to /etc/httpd/conf/ssl.crt/server.crt i /etc/httpd/conf/ssl.key/server.key

/

.

Następnie przystępujemy do utworzenia certyfikatu.

Najpierw tworzymy nowy katalog i tworzymy w nim kopię plików serwera Apache

# mkdir /tmp/apache

# cp ­r /etc/httpd/conf/* /tmp/apache/.

Potem wydajemy kolejno polecenia:

background image

# mkdir /etc/httpd/conf/tmp
# cd /etc/httpd/conf/tmp

            # openssl genrsa ­des3 ­out server.key 2048

Generating RSA private key, 2048 bit long modulus
................+++

...................................................................
..............+++

e is 65537 (0x10001)
Enter pass phrase for server.key: 

[nasze hasło]

Verifying ­ Enter pass phrase for server.key: 

[nasze hasło]

To polecenie wygeneruje prywatny 2048 bitowy klucz RSA przy użyciu biblioteki

OpenSSL. Klucz jest kodowany algorytmem des3.

# openssl rsa ­in server.key ­out server.pem

Enter pass phrase for server.key: 

[nasze hasło]

writing RSA key

Usuwamy hasło z prywatnego klucza i umieszcza go w pliku server.pem.

# openssl req ­new ­key server.key ­out server.csr (answer the 

series of questions)

Enter pass phrase for server.key: 

[jeszcze raz to samo hasło]

You are about to be asked to enter information that will be 

incorporated
into your certificate request.

What you are about to enter is what is called a Distinguished Name 
or a DN.

There are quite a few fields but you can leave some blank
For some fields there will be a default value,

If you enter '.', the field will be left blank.
­­­­­

Country Name (2 letter code) [GB]:

PL

P

State or Province Name (full name) [Berkshire]:

lubelskie

Locality Name (eg, city) [Newbury]:

Lublin

Organization Name (eg, company) [My Company Ltd]: 

[puste]

Organizational Unit Name (eg, section) []: 

[puste]

Common Name (eg, your name or your server's hostname)[]:

[localhost]

Email Address []:

root@localhost

r

Please enter the following 'extra' attributes
to be sent with your certificate request

A challenge password []: 

[puste]

An optional company name []: 

[puste]

Generujemy podpisany klucz

# openssl x509 ­req ­days 365 ­in server.csr ­signkey server.key 

­out server.crt

Signature ok
subject=/C=PL/ST=lubelskie/L=Lublin/O=My Company 

background image

Ltd/emailAddress=kmichalak8@gmail.com

Getting Private key
Enter pass phrase for server.key: 

[hasło]

i tworzymy certyfikat, którego ważność trwa 365 dni.

Na koniec wchodzimy do katalogu /etc/httpd/conf i kopiujemy otworzone przez nas pliki i

restartujemy serwer HTTP.

# cd /etc/httpd/conf && cp tmp/server.crt ./ssl.crt && cp 

tmp/server.key ./ssl.key

 

# cp tmp/server.csr ./ssl.csr && service httpd restart

Jeżeli wpiszemy teraz w pasku przeglądarki adres

http://localhost/

otrzymamy niestety

komunikat o niepoprawnym certyfikacie.

Dzieje się tak ze względu na fakt, że certyfikat udzielony stronie został podpisany przez nas
samych. Aby uniknąć tego problemu konieczne jest uzyskanie certyfikatu autentyczności strony z
zewnętrznego źródła.

SERWERY WIRTUALNE

Ostatnim już i najbardziej chyba interesującym zagadnieniem związanym z serwerem

Apache jest pomysł serwerów wirtualnych. Aby utworzyć dwa przykładowe wirtualne serwery
należy w głównym pliku konfiguracyjnym (/etc/httpd/conf/httpd.conf) umieścić wpis

NameVirtualHost 192.168.0.1:80

<VirtualHost 192.168.0.1>
ServerAdmin kmichalak8@gmail.lab1.com

ServerName www.lab1.com
DocumentRoot /www/lab1/htdocs

TransferLog /var/log/www/access_log.lab1
ErrorLog /var/log/www/error_log.lab1

</VirtualHost>

Ilustracja 2: Komunikat błędu uwierzytelniania

background image

<VirtualHost 192.168.0.1>
ServerAdmin kmichalak8@gmail.lab2.com

ServerName www.lab2.com
DocumentRoot /www/lab2/htdocs

TransferLog /var/log/www/access_log.lab12
ErrorLog /var/log/www/error_log.lab12

</VirtualHost>

Pierwsza linia określa adres, do którego odnoszą się poszczególne serwery. ServerName jest

dyrektywą przypisującą symboliczną nazwę wirtualnego serwera.

Sens takiego podejścia jest niewątpliwy w przypadku, kiedy chcemy na jednym serwerze

przechowywać kilka serwisów WWW. Pozwala to na redukcję kosztów jeżeli chodzi o sprzęt –
wystarczy nam jedna maszyna. Daje nam również możliwość tworzenia aliasów adresów
internetowych. Dzięki czemu dana strona może być widoczna pod kilkoma różnymi nazwami.


Wyszukiwarka

Podobne podstrony:
Ferguson S3 3G modem
IM R2 S3
SPR-ANKI, Studia, WAT Informatyka, s3 - GK - lab grafika komputerowa, Lab2
Zadanie IY4S1, Studia, WAT Informatyka, s3 - GK - grafika komputerowa, LAB2
sprawozdanie3, Studia, WAT Informatyka, s3 - GK - lab grafika komputerowa, Lab4
sprawozdanie oswietlenie, Studia, WAT Informatyka, s3 - GK - lab grafika komputerowa, Lab3
Rzezba Lab4, Studia, WAT Informatyka, s3 - GK - grafika komputerowa, LAB4
GK LAB3, Studia, WAT Informatyka, s3 - GK - grafika komputerowa, LAB4
KWADRYKI, Studia, WAT Informatyka, s3 - GK - lab grafika komputerowa, Lab2
słownictwo do?vanced U9 S3
MP 09-10 Z inz dz s3 cw zad 1
OpenGl, Studia, WAT Informatyka, s3 - GK - lab grafika komputerowa, Lab4
SIECI KOMPUTEROWE, Polibuda, studia, S12, S3, ważne, informatyka, Stare, infasem2
Audyt wewnętrzny (SGHowy) s3
MP 10 Z inz dz s3 cw Wyt z3 Nieznany
wm w s3 w11
prezentacja postepów na budowie S3 2007

więcej podobnych podstron