Serwer Apache
Domyślna instalacja Apache’a dla Windows działa na poziomie konta systemowego LocalSystem. Ustawienie to powinniśmy zmienić z dwóch powodów. Po pierwsze, takie konto ma zbyt duże uprawnienia lokalne, zatem każdy, kto znajdzie lukę w oprogramowaniu Apache’a, będzie mógł potencjalnie dostać się do wnętrza naszego systemu. Po drugie, konto LocalSystem nie ma uprawnień do korzystania z zasobów Sieci przez mechanizmy bezpieczeństwa Windows. Aby usunąć to potencjalne zagrożenie, tworzymy w systemie konto zwykłego użytkownika, nadajemy mu niezbędne uprawnienia i uruchamiamy na nim serwer WWW.
Na straży rezerwatu
O tym, kto będzie miał dostęp do naszego serwera WWW, możemy zadecydować już na poziomie zapory ogniowej. Choć jest to metoda skuteczna, nie zawsze będzie dla nas najwygodniejsza. Poznajmy zatem dyrektywy Allow oraz Deny, za pomocą których określimy, kto i do jakich zasobów będzie miał dostęp. Polecenia Allow oraz Deny umieszczamy w pliku konfiguracyjnym Apache’a (
httpd.conf)
, w sekcji Directory. Przykładowo: jeśli chcemy, aby dostęp do naszego serwera WWW (czyli konkretnego katalogu) miały tylko komputery z sieci lokalnej, musimy dodać następujący wpis:
<Directory “E:/WWW/Apache/Apache2/htdocs”>
Order Deny, Allow
Deny from all
Allow from 192.168.1.0/24
</Directory>
Wyrażenie Order decyduje o kolejności przetwarzania dyrektyw Allow i
Deny
. Najpierw blokujemy wszystko (
Deny
), a następnie zezwalamy na dostęp tylko komputerom z sieci lokalnej. Pozostali ujrzą komunikat 403 Forbidden, który informuje o zakazie dostępu do tych zasobów. Możemy stosować dowolną kombinację dyrektyw Deny i
Allow
, przypisując im różne wartości – nazwy domen, pojedyncze adresy IP lub ich zakres. Co ważne, uprawnienia dostępu modyfikujemy dla każdego katalogu na serwerze z osobna.
Nie ufaj skryptom
Jeżeli na serwerze będą materiały publikowane przez osoby trzecie, powinniśmy włączyć tylko te mechanizmy, które będą tym osobom rzeczywiście potrzebne. Zagrożeniem są skrypty CGI oraz polecenia SSI. Za pomocą kodu SSI użytkownik może wykonać jakieś polecenie na serwerze (dyrektywa
exec
) lub przejrzeć zawartość jakiegoś plik z dysku (dyrektywa
include
). Domyślnie Apache ma wyłączoną obsługę SSI. Aby zezwolić na przetwarzanie poleceń SSI, w sekcji Directory dodajemy wpis Options +Includes. Znacznie lepiej jest jednak użyć wyrażenia Option IncludesNOEXEC, które co prawda włączy obsługę SSI, ale zabroni wykonywania poleceń z poziomu strony WWW.
Zabezpieczając Apache’a, możemy zastosować także inną prostą sztuczkę. Polega ona na blokowaniu wyświetlania (listowania) zawartości katalogów, w wypadku gdy na serwerze nie umieszczono plików startowych index.html, 3index.php itd. W tym celu w sekcji Directory umieszczamy wpis Options -Indexes .
Wejście na hasło
Jeśli chcemy, by wszystkie dane publikowane w witrynach były odczytywane tylko przez uprawnione do tego osoby, dostęp do stron zabezpieczmy hasłem. Do tego celu stosuje się plik .htaccess, który umieszczamy w katalogu, do którego dostęp ograniczamy. Zawartość przykładowego zbioru .htaccess wygląda następująco:
AuthType Basic
AuthName “Podaj hasło:”
AuthUserFile e:\www\hasla\haslo.file
Require user kowalski
Zbiór tekstowy utworzymy w Windows za pomocą edytora. Otwieramy Notatnik, wprowadzamy właściwą treść, po czym zapisujemy plik na dysku poleceniem Plik | Zapisz jako. Ważne jest, aby pole Typy pliku ustalić na Wszystkie pliki. Dzięki temu program nie dołączy do nazwy zbioru rozszerzenia TXT.
Plik haslo.file zawiera hasło wygenerowane przez program htpassword. Powinniśmy przechowywać go w innym katalogu na dysku niż ten, w którym zamieszczamy strony WWW. Aby przygotować zbiór haslo.file, otwieramy konsolę (
Akcesoria | Wiersz poleceń
), a następnie przechodzimy do katalogu, w którym zainstalowaliśmy Apache’a. W dalszym kroku wydajemy komendę:
htpassword -c e:\www\hasla\haslo.file kowalski
Żeby cały opisany tu mechanizm zadziałał, w konfiguracji Apache’a musimy zezwolić na modyfikację praw dostępu do serwera z poziomu plików .htaccess. Decyduje o tym opcja AllowOverri de, którą umieszczamy wewnątrz dyrektywy Directory. Jeżeli w httpd.conf, w konfiguracji wybranego katalogu znajdzie się wpis AllowOverride None, pliki .htaccess nie będą akceptowane. Administrator może zezwolić na ich przetwarzanie, zmieniając wartość tej opcji z None na All. Innym dozwolonym parametrem jest
AuthConfig
– co prawda przetwarza on zbiory .htaccess, ale tylko te dyrektywy w nich zawarte, które służą do autoryzacji dostępu do strony WWW.
Bezpieczny Windows |
|