|
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:
Kompilacja i Instalacja OpenSSLZakł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 installJeż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 SSLPo 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_logAby 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.keyTo 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.oldTeraz, 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
|
|