środa, 23 maj 2012
NEXT / Artykuły / NEXT 1/2007 / Artykuły z NEXT 1/2007 / Bezpieczny serwer dla każdego

NEXT 1/2007 - Bezpieczny serwer dla każdego

Bezpieczny serwer dla każdego - ikonka cykl administratora: konfiguracja Apache’a, PHP, MySQL-a

Data: 19 wrzesień 2007
Identyfikator: 070124

Podstawowy proces instalacji, konfiguracji i uruchomienia własnego serwera WWW w domu lub małej firmie to kwestia kilkunastu minut. Później musisz jeszcze poświęcić czas na jego zabezpieczenie. Jeśli skorzystasz z dobrze udokumentowanych (a do tego darmowych) narzędzi Apache i MySQL, poradzisz sobie bez problemu.

Strona 1 z 2
< Poprzednia 1 2 Następna >

Zdaniem redaktora

Krzysztof Kozłowski
twórca i webmaster naszej strony www.nextmag.pl


Dzisiaj każda firma powinna mieć wizytówkę w internecie. Najlepiej uruchomić własny serwer WWW na starszym komputerze, wykorzystując do tego darmowe oprogramowanie. Umożliwi to pozyskanie większej liczby klientów i pomoże usprawnić pracę w biurze (jeśli zbudujesz intranet albo serwery plików czy wydruku).

W dobie rozwijającego się internetu każda firma stara się mieć zachęcającą do współpracy wizytówkę w postaci ciekawej strony WWW. Oprócz tego coraz częściej powstają strony intranetowe usprawniające komunikację pomiędzy pracownikami wybranej firmy. Warto także wiedzieć, że coraz więcej domowych użytkowników decyduje się na uruchomienie własnych serwerów. Daje im to możliwość zareklamowania swoich umiejętności lub wypowiedzenia się na określony temat.

Aby stworzyć i zarządzać profesjonalną witryną, np. stroną intranetową twojej firmy, sklepem internetowym, wirtualną reklamą czy blogiem, potrzebne są określone środki finansowe. Na początku musisz wydać pieniądze na hosting, a później jeszcze na stworzenie odpowiedniej aplikacji webowej. Chyba że skorzystasz z darmowego rozwiązania (np. bezpłatnego CMS-a) – wtedy pozostanie ci jedynie dostosowanie go do twoich potrzeb. Możesz jeszcze bardziej ograniczyć wydatki i uruchomić własny serwer. Więcej na temat złożenia serwera znajdziesz w raporcie na stronie 50, patrz również strona 100. Wystarczy do tego komputer z procesorem o taktowaniu 1 GHz i 1 GB pamięci RAM-u, co stanowi wydatek rzędu kilkuset złotych. Dzięki temu będziesz mógł na nim umieścić nie tylko stronę WWW, ale także np. wewnętrzną witrynę twojej firmy: intranet, serwer plików czy wydruku.

W tym numerze przedstawimy informacje, jak w dystrybucji Linuksa Gentoo, popularnym w zastosowaniach serwerowych, skonfigurować i uruchomić usługi Apache'a (WWW) oraz jak przygotować go do pracy z parserem PHP i MySQL-owym serwerem baz danych.

Hardening, czyli zbrojenie naszego serwera

Nieprawidłowa konfiguracja serwera Apache w połączeniu ze złośliwym skryptem PHP (wgranym przez osobę niezaufaną) może otworzyć dostęp osobom niepowołanym do niektórych elementów konfiguracji lub nawet do powłoki samego serwera. Dlatego tak ważne jest szczegółowe przejrzenie pliku httpd.conf i restrykcyjne skonfigurowanie praw dostępu. Każdą dyrektywę powinieneś dokładnie sprawdzić, czy do tego miejsca serwer WWW powinien wszystkich wpuścić i czy w ogóle jest potrzebne udostępnienie tego katalogu.
W związku z uwagami odnośnie luk w PHP dano administratorom szereg dodatkowych możliwości zacieśnienia konfiguracji. Zawsze warto wyłączyć wyświetlanie błędów (display_errors), które zamiast na ekran, powinny być zapisywane do logów serwera. W środowiskach wieloużytkownikowych (np. hostingi stron WWW) zainteresować się warto: safe_mode, memory_limit, open_basedir, max_execution_time i max_input_time. Zwróć uwagę także na opcje magic_quotes_*, które automatycznie mogą zabezpieczać część danych (pochodzących od użytkownika, z bazy danych itp.) przed lukami SQL Injection. Ale w tym przypadku i tak główny ciężar leży po stronie programisty danej aplikacji webowej, który musi tworzyć programy, zawsze mając bezpieczeństwo na uwadze.

Instalacja Apache'a

Przy stawianiu serwera WWW na platformie Unix/Linux dobrym wyborem jest Apache w wersji 2.0, m.in. z powodu dużej stabilności, wydajności, konfigurowalności, rozszerzalności oraz niezliczonej ilości dostępnych poradników. W wielu dystrybucjach z racji nowych możliwości znajdziesz jednak wydanie 2.2. Ponieważ instalacja i uruchomienie Apache’a nie różni się niczym w tych wersjach, to wybór właściwej pozostawiamy tobie.

Do instalacji Apache'a wykorzystaj menedżera oprogramowania z twojej dystrybucji Linuksa np. emerge dla Gentoo lub aptitude dla Ubuntu. Sprowadza się to do uruchomienia połączenia internetowego i wydania odpowiedniego polecenia w terminalu:
  • Gentoo: emerge apache
  • Ubuntu Server: aptitude install apache2

Po pobraniu i zainstalowaniu potrzebnych pakietów Apache potrafi serwować jedynie pliki statyczne (np. strony HTML). Jednak w dobie rozwijającego się internetu i powstawania nowych technologii takich stron praktycznie już się nie tworzy. Żeby móc tworzyć strony z generowaną dynamicznie treścią, które zapewniają interakcję z użytkownikiem, musisz skorzystać z możliwości któregoś z języków skryptowych. Dlatego warto do Apache’a doinstalować odpowiedni moduł, np. obsługujący bardzo popularnego PHP w wersji 5. (poprzednia, 4. jest mniej wydajna i niepolecana). Przy instalacji PHP zwróć uwagę, żeby wgrać wersję pracującą jako moduł Apache’a, a nie np. jako interpreter CGI – po prostu zainstaluj pakiet php5.

Po zakończeniu tego procesu serwer WWW jest gotowy do konfiguracji. Jednak warto doinstalować kilka mechanizmów, które usprawnią PHP. W celu zapewnienia większego bezpieczeństwa dograj i uaktywnij łatę Suhosin (php-suhosin). Jeśli korzystasz z Gentoo, zrobisz to korzystając z odpowiedniej flagi USE dla pakietu php (więcej dowiesz się po wydaniu polecenia equery u php). Twórcy PHP kwestię bezpieczeństwa traktowali drugorzędnie, więc Suhosin powinien być obowiązkowo wgrany przy instalacjach z publicznym dostępem.

Warto również zainteresować się tzw. akceleratorami PHP, które przechowują prekompilowany kod PHP (umożliwia to znaczne przyspieszenie jego wykonywania). Jeden z nich, bardzo wydajny i stabilny, a do tego zgodny z PHP 5, to Eaccelerator (znajdziesz go np. w drzewie pakietów Portage Gentoo: dev-php5/eaccelerator). Jeśli chciałbyś skorzystać z innego akceleratora, to warto byś wiedział, że niektóre z nich mogą spowodować, iż wybrane aplikacje webowe po prostu nie będą działać.


Ocena: +++++    (aby ocenić, musisz się zalogować w serwisie)

< Poprzednia 1 2 Następna >

Podobne artykuły:

Komentarze:

Redakcja nie ponosi odpowiedzialności za treść komentarzy.
Nikt jeszcze nie skomentował.
Niezalogowany

Aby mieć dostęp do niektórych części serwisu NEXT (np. forum dyskusyjnego, oceny numeru, newslettera), musisz posiadać konto w naszym serwisie. Zachęcamy do darmowej rejestracji!

Jeżeli posiadasz już konto w serwisie, to zaloguj się.