• Nie Znaleziono Wyników

[Rozwiązanie]

N/A
N/A
Protected

Academic year: 2021

Share "[Rozwiązanie]"

Copied!
2
0
0

Pełen tekst

(1)

A. Mróz

Bezpiecze ´nstwo Sieci

Wskazówki do projektu Bezpiecze ´nstwo strony www1

Uwagi wst˛epne:

1. Poni˙zszy dokument wskazuje przykładowe polecenia realizuj ˛ace jedynie kluczowe kroki post˛epowania; po-zostałe szczegóły nale˙zy uzupełni´c samodzielnie (patrz zaj˛ecia i wykład);

2. W celu „symulacji” rzeczywistego procesu uzyskiwania certyfikatu dla strony www wcielamy si˛e jednocze´snie w dwie role (na jednym komputerze!):

• administratora serwera www (w skrócie: admin),

• pracownika Centrum Certyfikacji (Urz˛edu Certyfikacji, Certificate Authority) (skróty: pracownik C.C. lub C.A.).

Ka˙zdy z nich b˛edzie pracował w innym katalogu (a najlepiej te˙z w innym terminalu) by lepiej oddzieli´c te dwie role od siebie.

3. Ustalamy nast˛epuj ˛ace katalogi (´scie˙zki):

• /CC (katalog C.C. – w tym katalogu b˛ed ˛a trzymane pliki C.C.),

• /var/www/html (katalog główny strony www, „DocumentRoot” w httpd.conf), • /var/www/html/ssl (podkatalog strony https, „DocumentRoot” w ssl.conf –

strona z tego podkatalogu b˛edzie udost˛epniana z wykorzystaniem protokołu https), • /var/www/html/certs (katalog certyfikatów/kluczy strony www).

4. Poni˙zsze wskazówki odnosz ˛a si˛e do systemu Linux NST wersja ≥ 26.

Etap 0: Admin umieszcza wszystkie potrzebne pliki zawieraj ˛ace stron˛e/strony www (pliki .html, obrazki itp.) w odpowiednich katalogach zdefiniowanych w Uwadze 3 (je˙zeli ich nie ma nale˙zy je utworzy´c).

Etap 1: Pracownik C.C. tworzy katalog C.C. i b˛ed ˛ac w nim: • generuje klucz(e) dla C.C.:

openssl genrsa -des3 -out ca.key 4096

• generuje („samopodpisany” – selfsigned) certyfikat dla C.C. w oparciu o powy˙zszy klucz: openssl req -new -x509 -days 3650 -key ca.key -out ca.cer

Etap 2: Admin w katalogu certyfikatów/kluczy strony www: • generuje klucz(e) dla strony www:

openssl genrsa -des3 -out key.key 4096

• [opcjonalne, zalecane] usuwa hasło z powy˙zszego klucza: openssl rsa -in key.key -out key_bez.key

• generuje plik ˙z ˛adania dla C.C. – ˙z ˛adania certyfikatu dla klucza publicznego: openssl req -new -key key_bez.key -out cerreq.csr

• „wysyła” powy˙zszy plik do C.C., tj., kopiuje plik cerreq.csr do katalogu C.C. Etap 3: Pracownik C.C.

• tworzy katalogi /etc/pki/CA oraz /etc/pki/CA/newcerts • tworzy pusty plik /etc/pki/CA/index.txt

• tworzy plik /etc/pki/CA/serial i wpisuje w nim liczb˛e z przedziału 1-FF

• w katalogu C.C. wykonuje otrzymane ˙z ˛adanie admina (tj., generuje certyfikat dla jego klucza publicznego):

openssl ca -policy policy_anything -cert ca.cer -in cerreq.csr -keyfile ca.key -days 365 -out cer.cer

• „wysyła” certyfikaty do admina, tj., kopiuje pliki ca.cer i cer.cer do katalogu certyfikatów/kluczy strony www.

VERTE!

1

(2)

2 A. Mróz / Wskazówki – bezpieczna www

Etap 4: Admin:

• na wszelki wypadek sprawdza czy ma wszystko co trzeba, czyli czy w katalogu certyfikatów/kluczy strony www znajduj ˛a si˛e pliki:

cer.cer, key_bez.key, ca.cer

• odnajduje plik konfiguracyjny ssl.conf, otwiera go w Ulubionym Edytorze Plików Tekstowych, usuwa w tym pliku wszystkie linie od <VirtualHost do </VirtualHost> (wł ˛acznie) i w to miejsce wpisuje:

<VirtualHost *:443> SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM DocumentRoot "/var/www/html/ssl" ErrorLog logs/ssl-error.log TransferLog logs/ssl-access.log SSLEngine On SSLCertificateFile /var/www/html/certs/cer.cer SSLCertificateKeyFile /var/www/html/certs/key_bez.key SSLCACertificateFile /var/www/html/certs/ca.cer

SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown SSLVerifyClient none

SSLProxyEngine off </VirtualHost>

i zapisuje plik.

Cytaty

Powiązane dokumenty

• Możliwe przyczyny: zła nazwa pliku, zła ścieżka, brak nośnika, uszkodzenie nośnika, brak uprawnień do odczytu lub zapisu, za duża liczba otworzonych strumieni, itp.....

Jako ćwiczenie samodzielne poproszę Was o uzupełnienie Waszej pracy o dzikich zwierzętach o kilka informacji według wzoru:.

Aby odczytać zawartość w pliku tekstowym, należy też utworzyć egzemplarz klasy StreamReader.. W parametrze jego konstruktora należy przekazać obiekt

Aby odczytać zawartość w pliku tekstowym, należy też utworzyć egzemplarz klasy StreamReader. W parametrze jego konstruktora należy przekazać obiekt

Klasa ta powinna zawierać następujące pola prywatne: String[] nazwa - tablica z nazwami leków, double[] cena - tablica z cenami poszczególnych leków (każda cena przypisana jest do

Powiększ kwotę zaku- pów dodawanych przez klienta do koszyka o procentową wartość podat- ku.. Druga zmienna powinna wskazywać procentową promocję

(4p.) Napisać skrypt, który wszystkie pliki z przyrostkiem ~ (np. plik.txt~ ), skopiuje (jeżeli takie są) do katalogu BACKUP w bieżącym katalogu.. Jeżeli katalog BACKUP

Stare programy 16-bitowe nadal korzystają z plików konfiguracyjnych INI, programy MS-DOS mają zazwyczaj własne