1 / 17

Administracja systemami operacyjnymi Wiosna 2014

Administracja systemami operacyjnymi Wiosna 2014. Wykład 3 Zaawansowane usługi sieciowe w Linux/UNIX – Apache i SSL. dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki http://wbieniec.kis.p.lodz.pl/pwsz. SSL.

lida
Download Presentation

Administracja systemami operacyjnymi Wiosna 2014

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Administracja systemami operacyjnymiWiosna 2014 Wykład 3 Zaawansowane usługi sieciowe w Linux/UNIX – Apache i SSL dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki http://wbieniec.kis.p.lodz.pl/pwsz

  2. SSL SSL (SecureSocketLayer) to opracowany w 1994 roku protokół, służący do bezpiecznej transmisji zaszyfrowanego strumienia danych. • SSL odpowiada za: • szyfrowanie danych, miedzy warstwą transportu a warstwą aplikacji TCP • autoryzację tożsamości serwera względem klienta. SSL standardowo oczekuje na zapytania na porcie 443.

  3. Działanie SSL Protokół SSL funkcjonuje jako warstwa pośrednia między przeglądarką i usługami TCP/IP udostępnionymi na komputerze macierzystym. Przed wysłaniem komunikatu HTTP do usługi TCP/IP komputera macierzystego przeglądarka przekazuje go do warstwy SSL w celu zaszyfrowania. Warstwa SSL skonfigurowana na serwerze WWW rozszyfrowuje komunikat otrzymany od usługi TCP/IP, po czym przesyła go do serwera. Po zainstalowaniu i prawidłowym skonfigurowaniu serwera WWW żądania i odpowiedzi HTTP są szyfrowane automatycznie.

  4. Etapy działania protokołu Przeglądarka nawiązujepołączenie z serweremwykorzystującym SSLi żąda od niegouwierzytelnienia się. Serwerwysyła swójcertyfikat cyfrowy Serwer możezażądać odprzeglądarkiuwierzytelnieniasię. Przeglądarkawysyła listęobsługiwanychprzez siebiealgorytmówszyfrującychi funkcjimieszających. • Przeglądarka i serwer generują klucze sesji: • Przeglądarka odczytuje z certyfikatu cyfrowego serwera jego klucz publiczny i szyfruje nim losowo wybraną liczbę. Serwer wybieraz podaj listynajbezpieczniejsząmetodę, którąjest w stanieobsłużyć. Serwer wysyła ciąg losowo wybranych danych w formie otwartego tekstu (chyba że przeglądarka na żądanie serwera udostępniła swój certyfikat cyfrowy – wówczas serwer wykorzysta zawarty w nim klucz publiczny przeglądarki do szyfrowania wysyłanych danych). • Na podstawie wymienionych danych generowane są klucze sesji będące wynikiem wykonania funkcji mieszających.

  5. Operacja wysyłania danych Dane zostają podzielone na niewielkie pakiety. Każdy pakiet może zostać skompresowany. Za pomocą odpowiedniego algorytmu mieszającego dla każdego pakietu zostaje obliczony kod uwierzytelniający. Skompresowane dane i ich kod uwierzytelniający zostają połączone i zaszyfrowane.

  6. Operacja wysyłania danych Za pomocą odpowiedniego algorytmu mieszającego dla każdego pakietu zostaje obliczony kod uwierzytelniający. Skompresowane dane i ich kod uwierzytelniający zostają połączone i zaszyfrowane. Zaszyfrowane pakiety wraz z dołączonymi do nich nagłówkami informacji zostają wysłane do sieci.

  7. SSL - Certyfikaty Certyfikat jest to zbiór danych jednoznacznie identyfikujących pewną jednostkę (na przykład osobę, lub komputer) oraz pozwalający stwierdzić, czy osoba, która się nim legitymuje jest rzeczywiście tym, za kogo się podaje. Jest on potwierdzony przez zaufaną organizację, zwaną w protokole SSL certificate authority (CA).(Urząd certyfikacji) Certyfikat zawiera: Nazwę certyfikowanego obiektu Identyfikator obiektu Klucz publiczny obiektu Czas ważności Nazwę wystawcy certyfikatu Identyfikator wystawcy Podpis wystawcy (To pole zawiera jednoznaczny skrót całego certyfikatu zaszyfrowany przy pomocy klucza prywatnego wystawcy.)

  8. Urząd certyfikacji Urząd certyfikacji – podmiot, który wystawia certyfikaty cyfrowe. Certyfikat potwierdza własność klucza publicznego poprzez wskazanie podmiotu certyfikatu. Pozwala to innym powołującym się stronom polegać na podpisach złożonych przez klucz prywatny. Komercyjne urzędy certyfikacji pobierają opłatę za wydanie certyfikatów, które będą automatycznie zaufane przez większość przeglądarek internetowych Niektórzy dostawcy wydają cyfrowe certyfikaty do obrotu publicznego bez żadnych kosztów. Duże instytucje lub podmioty rządowe mogą mieć swoje własne centrum certyfikacji. W ogólnym przypadku mamy tak zwany łańcuch certyfikatów. Nie musimy (a nawet nie powinniśmy) dla każdego obiektu w danym systemie wystawiać certyfikatu potwierdzonego przez CA, gdyż spowodowałoby to przeciążenie tych instytucji i niepotrzebny rozrost bazy danych. Możemy na własne potrzeby ustanowić lokalny urząd certyfikacyjny który będzie poświadczał lokalne certyfikaty, a sam będzie legitymował się certyfikatem poświadczonym przez CA.

  9. Instalacja OpenSSL – uzyskiwanie klucza i certyfikatu Aby zdobyć certyfikat SSL ptrzebujemy dwóch rzeczy: klucza prywatnego naszego hosta i tzw. żądania certyfikatu (ang. CSR: CertificateSigningRequest). Obie wygenerujemy przy pomocy OpenSSL. Instalacja implementacji protokołów SSL #apt-getinstallopensslssl-cert Generowanie klucza prywatnego # opensslgenrsa -des3 -out www.mojadomena.pl.key 2048 OpenSSL podczas generowania klucza prywatnego poprosi o podanie hasła, którym zostanie zaszyfrowany klucz – nawet po przechwyceniu klucza, atakujący nie mógł z niego tak łatwo skorzystać. Generowanie CSR # opensslreq-new -keywww.mojadomena.pl.key -out www.mojadomena.pl.csr Plik www.mojadomena.pl.csr po podpisaniu przez zaufane centrum certyfikacji stanie się certyfikatem i będzie mógł zostać użyty do szyfrowania transmisji.

  10. Podpisywanie certyfikatu Proces weryfikacyjny składa się z dwóch etapów: - umieszczenie pliku na serwerze lub umieszczenie ciągu znaków na stronie w domenie dla której staramy się o certyfikat - wysłanie maila z domeny (np. admin@mojadomena.pl, sysadmin@mojadomena.pl, root@mojadomena.pl), maile są zdefiniowane i mamy wybór spośród kilku opcji Jeśli weryfikacja się powiedzie, otrzymamy na podany adres e-mail identyfikator. Dzięki niemu będziemy mogli pobrać przez WWW podpisany certyfikat. Dane certyfikatu możemy wyświetlić przy użyciu polecenia openssl: # openssl x509 -in www.mojadomena.pl.crt -text Każdy podpisany certyfikat posiada okres ważności, termin ten jest zawarty w sekcji Validity: Not Before: Nov17 13:58:12 2013 GMT Not After : Nov18 13:58:12 2014 GMT Użycie niepodpisanego certyfikatu powoduje, że wyskakuje ostrzeżenie na przeglądarce

  11. Instalacja certyfikatu Należy włączyć SSL pod apache #a2enmod ssl Tworzenie CSR-a – tak jak poprzednio + katalogi #mkdir /etc/apache2/ssl #cd /etc/apache2/ssl #openssl req -new -days 365 -nodes -keyout www.mojadomena.pl.key -out www.mojadomena.pl.csr Dopisujemy konfigurację w /etc/apache2/ports.conf <VirtualHost 10.0.2.15:443> SSLEngine On SSLCertificateFile /etc/apache2/ssl/www.mojadomena.pl.crt SSLCertificateKeyFile /etc/apache2/ssl/www.mojadomena.pl.key SSLCACertificateFile /etc/apache2/ssl/www.mojadomena.pl.cer ServerAdmin root@mojadomena.pl ServerName www.mojadomena.pl DocumentRoot /var/www/ssl ErrorLog /var/www/error.log </VirtualHost>

  12. Wysyłanie do urzędu certyfikacji Wchodzimy na stronę http://www.thawte.com wybieramy trialssl rejestrujemy się i wklejamy zawartość CSR Czekamy na weryfikację i odbiór plików przez e-mail Będą to: www.mojadomena.pl.cer www.mojadomena.pl.crt Należy je umieścić w katalogu /etc/apache2/ssl Chronimy nasze klucze: #chmod 400 /etc/apache2/ssl/www.mojadomena.pl.* Uwaga: konfiguracja na poprzednim slajdzie zakłada istnienie katalogu ze stroną WWW dostępną przez SSL Resetujemy serwer WWW i wchodzimy na stronę główną przez HTTP UWAGA: Trial SSL ważny jest przez 21 dni.

  13. Konfiguracja wirtualnych hostów Przechodzimy do katalogu z konfiguracjami Apache # cd /etc/apache2/sites-available/ Tworzymy tutaj plik testowa_pl <VirtualHost *> ServerAdmin test@testowa.pl ServerName www.testowa.pl ServerAlias testowa.pl DirectoryIndex index.php index.html DocumentRoot /var/www/testowa_pl ErrorLog /var/log/apache2/testowa.pl-error.log CustomLog /var/log/apache2/testowa.pl-access.log combined </VirtualHost> # a2ensite testowa_pl

  14. Ćwiczenia Na tym samym IP postaw dwie domeny wp.pl i onet.pl

  15. Ćwiczenia Na jednym serwerze postaw dwie domeny na dwóch różnych IP Wymaga to utworzenia aliasu na interfejsie # ifconfig eth0:0 10.0.2.15 up

  16. Ćwiczenia Postaw tę samą stronę na dwóch różnych IP Server configuration NameVirtualHost 10.0.2.15 NameVirtualHost 10.0.2.16 <VirtualHost 10.0.2.15 10.0.2.16> DocumentRoot /www/server1 ServerName server.example.com ServerAlias server </VirtualHost>

  17. Ćwiczenia Postaw różne strony na różnych portach tego samego IP Listen 80Listen 8080NameVirtualHost 10.0.2.15:80NameVirtualHost 10.0.2.15:8080<VirtualHost 10.0.2.15:80>ServerName www.example.comDocumentRoot /www/domain-80</VirtualHost><VirtualHost 10.0.2.15:8080>ServerName www.example.comDocumentRoot /www/domain-8080</VirtualHost><VirtualHost 10.0.2.15:80>ServerName www.example.orgDocumentRoot /www/otherdomain-80</VirtualHost>

More Related