linuxpub.pl
Powrót Powrót 
 
Wyślij znajomemu Drukuj

Budowanie zabezpieczonego web serwera przy użyciu Apache i OpenSSL

Autor:Nick DeClario 9/19/2000
Orginalny tytuł:Building a secure web server using Apache and OpenSSL

Tłumaczył: tank Ostatnia aktalizacja : 24.09.2000

Używając Apache i OpenSSL możesz stworzyć swój własny bezpieczny web serwer do przechowywania prywatnych informacji przed ciekawskimi oczami.

Posiadanie zabezpieczonego web serwera jest potrzebne jeżeli pracujesz zdalnie jako administrator, w bankowości i/lub w e-commerce (czyli internetowych sklepach itp.). Możesz mieć też po prostu prywatne informacje do których chcesz mieć dostęp przez web i chcesz bezpiecznie z nich korzystać. Zastosowanie zabezpieczonego serwera idealnie się do tego nadaje.

Używając Apache, mod-ssl oraz OpenSSL możemy stworzyć zabezpieczony Web serwer szybko i łatwo. Nie musimy się też dłużej martwić o RSA. Wcześniej do 6.09.2000 algorytmu RSA był w pełni opatentowany przez RSA. Patent oficjalnie kończy się 20.09.2000 ale RSA uchylił patent nieco wcześniej. Dlatego nie musimy dłużej używać pakietu RSAREF, który nadal jest licencjonowany przez RSA.

Pierwszym zadaniem do wykonania, żeby zabezpieczyć nasz serwer jest zgromadzenie wymaganego oprogramowania. Potrzebne będą trzy pakiety Apache, OpenSSL i mod-ssl.

Musisz mieć zainstalowane następujące pakiety:

Pakiety w RPMach i Debiana również istnieją. Sprawdź to na swoim ulubionym mirrorze. Zamiast mod-ssl możesz zastosować Apache-SSL. Ten dokument jednak koncentruje się na mod-ssl. Mod_SSL pochodzi od Apache-SSL, jednak kod mod-ssl został przepisany od nowa. Mod_SSL jest szybszy i łatwiejszy w konfiguracji niż Apache-SSL.

Kompilacja i Instalacja OpenSSL

Zakładam że masz zainstalowanego perl\'a i działający kompilator. Musisz rozpakować te trzy pakiety. Najpierw skompiluj OpenSSL (to może chwilę potrwać):

   
$ ./config 
$ make 
$ make test 
$ make install 
Jeżeli wszystko zostało zrobione skompiluj mod-ssl:
Uwaga: \'ALL\' oznacza że ta opcja musi być oraz \'optional\' oznacza że jest to opcja.
 
$ cd 
mod_ssl-2.6.x-1.3.x                             ALL 
$ ./configure \\                                 ALL 
      --with-apache=../apache_1.3.x \\           ALL 
      --with-ssl=../openssl-0.9.x \\             ALL 
      --with-mm=../mm-1.1.x \\                   OPTIONAL 
      --with-crt=/path/to/your/server.crt \\     OPTIONAL 
      --with-key=/path/to/your/server.key \\     OPTIONAL 
      --prefix=/path/to/apache \\                ALL 
     [--enable-shared=ssl] \\                    OPTIONAL 
     [--disable-rule=SSL_COMPAT] \\              OPTIONAL 
     [--enable-rule=SSL_SDBM] \\                 OPTIONAL
     [--enable-rule=SSL_EXPERIMENTAL] \\         OPTIONAL 
     [--enable-rule=SSL_VENDOR] \\               OPTIONAL 
     [...more APACHE options...]                OPTIONAL 
$ cd ../apache_1.3.x 
$ make 
$ make certificate                                            
$ make install                                                     
Aby uzyskać więcej informacji o wkompilowaniu mod-ssl do Apacha przeczytaj pliki INSTALL oraz README dostarczone razem z pakietem.

Konfiguracja httpd.conf dla obsługi SSL

Po instalacji mod-ssl, możesz skonfigurować plik httpd.conf jak dla normalnej strony. Możesz, jednak ustawić zabezpieczenie SSL dla wirtualnego hosta (VirtualHost). Będziesz miał dostęp przez https://my.site.com zamiast http://my.site.com.

Jest wiele opcji konfiguracyjnych i wymagań dla wirtualnego hosta w Apache. Jest tego zbyt wiele aby o wszystkim tutaj napisać, przedstawię jedynie przykład z prostym wirtualnym hostem. Wirtualny host zawiera nazwę serwera, adres e-mail administratora, ścieżki do plików oraz do logów hosta. Powinno to wyglądać podobnie do tego:

 
ServerAdmin admin@mysite.com 
DocumentRoot /home/httpd/mysite/ 
ErrorLog /var/log/httpd/mysite-errors_log 
TransferLog /var/log/httpd/mysite-transfers_log 
Aby dodać obsługę SSL do twojego wirtualnego hosta musisz to włączyć i podać gdzie masz swoje certyfikaty oraz klucz do rozszyfrowania ich. Dodaj te linie przed etykieta \'\' :
 
SSLEngine on 
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt 
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key 
To są podstawowe opcje SSL dla wirtualnego hosta. Jest tego znacznie więcej niż można pokazać w tym krótkim tekście. Kiedy instalujesz mod_SSL do Apache to w nowym httpd.conf masz przykłady oraz opisy od wirtualnego hosta i opcje SSL. Możesz też znaleźć liczne dokumenty na stronach http://www.apache.org/ oraz http://linuxsecurity.com/feature_stories/www.modssl.org.

Kiedy w konfiguracji wszystko zostało ustawione, musisz wystartować serwer. Startujemy Apache w trybie SSL poprzez wydanie następujących komend:

 
[root@myhost #] /usr/sbin/httpd -startssl 
read RSA key 
Enter PEM pass phrase: 
Ten komunikat pyta o hasło. Wymagane jest hasło do rozszyfrowania twojego klucza dla SSL. To może przeszkadzać gdy włączmy Apache przy starcie systemu. Jest pewien sposób na obejście tego ale jest to niebezpieczne.

Przejdź do miejsca gdzie masz zachowany plik http.conf i w katalogu ssl.key zobaczysz server.key. Tu znajduje się twój zaszyfrowany klucz. Jeżeli rozszyfrujemy klucz nie będziesz musiał już nigdy wprowadzać hasła. Ryzyko polega na tym że jeżeli klucz zostanie przez kogoś zdobyty możliwe jest przechwycenie zabezpieczonego połączenia i rozszyfrowanie twoich informacji.

Przed rozszyfrowaniem klucza wykonaj najpierw backup:

 
[root@myhost #] cp /path/to/apache-conf/ssl.key/server.key server.key.old 
Teraz, używając OpenSSL, rozszyfruj klucz:
 
[root@myhost #] /usr/sbin/openssl rsa -in server.key.old -out server.key 
read RSA key 
Enter PEM pass phrase: 
Musisz wprowadzić swoje hasło do rozszyfrowania klucza. server.key zawiera teraz niezaszyfrowany klucz. Musisz nadal startować apache z httpd --startssl lub używając pliku startowego zawartego w pakietach RPM lub dpkg (DEB).

Źródła


 


Do góry Do góry 
 
Powrót Powrót 
Wyślij znajomemu Drukuj
Dodaj komentarz
Temat: *
Treść: *
Podpis: *
Adres e-mail: Nie publikuj adresu na stronie
Powiadom mnie
jeżeli ktoś doda komentarz:
(Musisz podać adres emial aby skorzytsać z tej opcji)
 
* - pola obowiązkowe

Komentarze powinny być zgodne ogólnie przyjętymi normami moralnymi oraz zasadami netykiety.
Zabronione jest umieszczanie obraźliwych, niecenzuralnych wypowiedzi. Niedozwolone jest również
wykorzystywanie serwisu do celów komercyjnych bez wiedzy i zgody administratora.
Komentarze które naruszą powyższe warunki będą usuwane.

Za treści pozostawione przez osoby odwiedzające nasze serwisy, zespół linuxpub.pl nie ponosi odpowiedzialności.
 
Wiadomości | Archiwalne wiadomości | Faq | Felietony | Podstawy | Konfiguracja | Administracja | Programowanie | Licencja GNU/GPL
2000 - 2008 Copyright (c) linuxpub.pl, epub.pl | Zgłoś błąd