Domykanie drzwi

Jeżeli zdecydowaliśmy się na uruchomienie serwera, to musimy liczyć się z tym, że prędzej czy później ktoś spróbuje się do niego włamać. Nieważne, jakimi pobudkami będzie się kierował haker – najlepiej założyć, że jego intencje okażą się jak najgorsze i zechce on na przykład zlikwidować całą zawartość dysku twardego naszej maszyny albo wykorzystać ją w roli bramki do rozsyłania spamu. Warto więc znać sposoby zabezpieczania serwera WWW przed sieciowymi przestępcami.

Z Indianinem w tle

Znajdziemy wiele komercyjnych oraz darmowych programów pełniących funkcję serwerów WWW. Jednym z najstarszych, najchętniej używanych i najlepiej dopracowanych jest Apache. Doczekał się on wielu wersji dla rozmaitych platform sprzętowych; możemy go też zainstalować w każdym popularnym systemie operacyjnym. Podobnie jak jego liczący się konkurenci, Apache pozwala na wzbogacenie treści stron elementami Javy, języków skryptowych oraz programów zgodnych z interfejsem CGI. Obsługiwane witryny mogą ponadto korzystać z dobrodziejstw, jakie niesie ze sobą przechowywanie informacji w bazach danych. Istnieje wiele aplikacji współpracujących z Apache’em – wymieńmy chociażby MySQL, Postgress, Oracle czy Interbase.

Zanim przystąpimy do instalacji serwera, musimy się upewnić, czy dysponujemy odpowiednio zaawansowanym systemem operacyjnym. Spośród platform Microsoftu najbardziej odpowiednie są Windows 2000 i XP w wersji Professional lub Server. Zakładamy też, że będziemy używali Apache’a w wersji co najmniej 2.0.51. Wybraliśmy ją zamiast Apache’a 1.3.x z kilku powodów, wśród których należy wymienić wbudowaną obsługę standardu Unicode, protokołu IPv6, poprawioną pracę wielowątkową oraz bardziej niezawodne działanie w systemach innych niż Unix.

Instalacja serwera odbywa się w typowy dla środowisk Windows sposób, polegający na przejściu przez kilka okien kreatora. Informacje, które musimy podać na wstępie, obejmują zarejestrowaną nazwę serwera WWW, jego numer IP, nasz adres poczty elektronicznej oraz typ i lokalizację instalacji. To jednak dopiero początek – musimy jeszcze uważnie skonfigurować i zabezpieczyć oprogramowanie.

Zakładamy, że Apache będzie udostępniał jedynie statyczne strony WWW. Zagadnienia “uszczelniania” baz danych oraz zasad pisania “bezpiecznych” skryptów wykonywanych na serwerze stanowią temat na kilka dość grubych książek.

Twarde prawa, ale prawa

Pierwsze, co powinniśmy uczynić zaraz po zainstalowaniu Apache’a, to ustalenie restrykcji związanych z dostępem do katalogów programu. Nie mniej uwagi musimy poświęcić ograniczeniu praw, z jakimi będzie uruchamiana usługa serwera. Powyższe czynności stanowią nowość dla osób, które dotychczas miały doświadczenia z Apache’em instalowanym w systemie Linux.

Standardowo program pracuje w Windows z prawami konta LocalSystem lub System. Niebezpieczeństwo, jakie się z tym wiąże, wynika ze stosunkowo dużych uprawnień użytkownika systemowego. Jeżeli ktoś przejmie kontrolę nad naszym serwerem, to będzie mógł zrobić z komputerem wszystko – od przeglądania zawartości dysków, poprzez modyfikowanie stron WWW, aż do kasowania plików.

Ograniczmy zatem uprawnienia, z jakimi uruchomimy Apache’a. Zrobimy to w prosty sposób: utworzymy konto nowego, zwykłego użytkownika i będziemy uruchamiali serwer z uprawnieniami mniejszymi niż te przyznane użytkownikowi System. Skorzystamy z konsoli MMC (Microsoft Management Console). Wydajemy komendę Start | Administrative Tools | Computer Management, zakładamy nowe konto i upewniamy się, że zostało ono przydzielone do grupy zwykłych użytkowników (

Users

).

Następną czynnością jest ustalenie odpowiednich praw dla nowego konta. Uruchamiamy ponownie konsolę MMC i włączamy przystawkę Group Policy lub Local Security Policy. Uaktywniamy dwa przywileje dla Apache’a:

Działaj jako część systemu (Act as part of the operating system)

oraz Loguj jako usługę (Log on as a service). Ostatnim etapem jest skonfigurowanie usługi Apache’a do uruchamiania z prawami utworzonego właśnie konta. Dokonujemy tego z poziomu przystawki Zarządzanie komputerem (Computer Management). Ważne jest, aby na zakładce Logowanie (Log On) wpisać również hasło do konta serwera WWW.

Tych plików nie ruszaj!

W celu zapewnienia prawidłowego działania serwera WWW powinniśmy zadbać o odpowiednie (bezpieczne) zdefiniowanie uprawnień do folderów na dysku twardym komputera. Jest to o tyle ważne, że domyślna instalacja lokuje pliki i katalogi oprogramowania serwerowego na partycji systemowej, a więc w sąsiedztwie samych Windows.

Domyślnym systemem plików jest naturalnie NTFS. Konto Apache’a powinno mieć prawo odczytu i wykonania wszystkich folderów i plików serwera WWW (

Read eXecute

). Wyjątek stanowi podkatalog /logs. W tym przypadku przyznajemy uprawnienia odczytu, zapisu, wykonania i usunięcia (

Read Write eXecute Delete

). Wynika to z prostego faktu, że program w czasie pracy musi gdzieś zapisywać swoje logi. Wszelkie katalogi zawierające udostępniane witryny WWW, czyli pliki HTML, CSS czy też zbiory graficzne, powinny natomiast zezwalać serwerowi jedynie na odczyt i wykonanie (

Read eXecute

). Podobną zasadę przyjmujemy, określając prawa dostępu serwera do folderów i plików systemu Windows.

Więcej:bezcatnews