--=REKLAMA=--

Bezpieczeństwo - lista kontrolna 4: Konfiguracja Joomla!

Z Joomla!WikiPL

Konfiguracja Joomla!

Zawsze instaluj tylko oficjalną wersję Joomla!

Aby uniknąć problemów ze stroną przeszukaj forum i znajdź raporty o niekompatybilnych rozszerzeniach, zanim zaktualizujesz nową wersję Joomla!.
Aktualizuj system do tej - najnowszej stabilnej wersji Joomla! tak szybko, jak to możliwe.
Pobieraj Joomla! tylko z oficjalnych stron, takich jak JoomlaCode.org czy Polskie Centrum Joomla. Sprawdzaj klucz MD5.
Stosuj Joomla Diagnostics, aby upewnić się, że wszystkie pliki zostały prawidłowo zainstalowane. (Uwaga: wersja Joomla! Diagnostics opracowana dla wstępnego wydania 1.5 nie działa dla 1.5.3.)

Zmień domyślną nazwę użytkownika

Zmień domyślną nazwę użytkownika w panelu administratora. Ten prosty krok zwiększy bezpieczeństwo tej lokalizacji. Teraz włamywacz musi znać dwie zmienne, użytkownika i hasło, by dostać się do środka panelu. Hasło to oczywiście druga zmienna. Zmień je natychmiast po zainstalowaniu i później często zmieniaj. (zobacz Częste pytania)

Zabezpiecz katalogi i pliki

Popraw bezpieczeństwo krytycznego pliku configuration.php przez przesunięcie go z katalogu public_html. Więcej informacji na ten temat jest tu: (zobacz Częste pytania)
Upewnij się, że wszystkie konfigurowalne ścieżki do zapisywalnych katalogów (repozytoria dokumentów, galerie, cache) są poza katalogiem public_html. Sprawdź rozszerzenia napisane przez osoby trzecie, takie jak DOCMan i Gallery2, pod kątem ścieżek do zapisywalnych katalogów.
Compat 15.png W konfiguracji globalnej witryny i zaplecza zmień ścieżkę logów. Niektóre rozszerzenia używają wbudowanej klasy JLog. Ta domyślnie zapisuje logi do http://twoja_domena/logs. Zmień to na miejsce, którego przeglądarka przypadkowo nie będzie mogła znaleźć (i nie wybieraj /tmp/), lub zablokuj je poprzez autentykację HTTP. Ponieważ mamy do czynienia z oprogramowaniem Open Source, włamywacze mogą przeczytać kod rozszerzeń pisanych przez osoby trzecie i będą w stanie odgadnąć nazwy plików logów.
Compat 15.png W konfiguracji globalnej witryny i zaplecza zmień ścieżkę do folderu temp.
Jeżeli ścieżki logów i katalogu temp zostały zmienione i konfiguracja dyrektywy PHP open_basedir jest ustawiona, upewnij się, że nowe ścieżki wchodzą w zakres obejmowany przez open_basedir.
Nie ma obecnie łatwego sposobu, aby przesunąć katalogi Joomla! /image i /media. Jest to spowodowane tym, że tysiące rozszerzeń napisanych przez osoby trzecie odwołuje się do nich w obecnym miejscu. Najlepszym rozwiązaniem jest upewnienie się, że open_basedir jest właściwie ustawiony dla wszystkich kont użytkowników Twojego serwera. Jeżeli jesteś niepewny, sprawdź u swojego dostawcy.

Ustaw prawa dostępu dla plików i katalogów

Kiedy twoja strona jest skonfigurowana i pracuje stabilnie, zabezpiecz przed zapisem krytyczne katalogi, ustawiając CHMOD na 755, a dla plików na 644. Jest taka możliwość w zapleczu, Globalna Konfiguracja, Serwer, aby ustawić wszystkie katalogi i pliki naraz. Potem przetestuj rozszerzenia napisane przez osoby trzecie, i ostrożnie przejrzyj kod każdego rozszerzenia, które ma kłopot z takimi ustawieniami CHMOD. Uwaga: W zależności od ustawień Twojego serwera, być może będziesz musiał tymczasowo - na czas instalacji rozszerzeń poprzez instalatora Joomla! - ustawić mniej restrykcyjne prawa dostępu.

Usuń niepotrzebne pliki

Usuń wszystkie niepotrzebne szablony. Nigdy nie stosuj logiki bezpieczeństwa w plikach szablonów.
Compat 15.png Usuń wszystkie serwery XML-RPC, jeżeli ich nie używasz.
Posprzątaj po instalacji. Proces instalacji wymaga abyś usunął katalog instalacyjny wraz z całą zawartością. Zrób to, nie zmieniaj tylko jego nazwy, ale go usuń! Jeżeli przesyłasz pliki na swój serwer jako archiwa skompresowane, nie zapomnij usunąć pliku skompresowanego. Sprawdź katalog /temp/, ponieważ pliki tymczasowe mogły tam pozostać po nieudanej próbie instalacji.
Generalnie nie pozostawiaj jakichkolwiek niepotrzebnych plików (skompresowanych czy innych) na serwerze publicznym. Każdy nieużywany i zapomniany plik jest potencjalnym zagrożeniem dla bezpieczeństwa.

Wyłącz emulację Register Globals

Compat 15.png Joomla! 1.5 i dalsze wersje nie używają register_globals i w rzeczywistości posiadają zabezpieczenie przed takim ustawieniem, nawet jeśli jest włączone na poziomie PHP. Zauważ, że chociaż przez to sam system Joomla! jest bezpieczniejszy, to każdy serwer z włączoną opcją register_globals jest potencjalnie narażony na atak. Na każdym współdzielonym serwerze z włączoną register_globals tyka ukryta bomba. Każdy dostawca, który nalega, by włączyć register_globals jest niekompetentnym ignorantem lub kimś jeszcze gorszym. Czy trzeba wyrażać się jaśniej?
Więcej informacji o register_globals znajdziesz tu Hosting i ustawienia serwera: Nie używaj PHP register_globals.

Instalacja rozszerzeń Joomla!

Przed instalacją zawsze rób kopię

Przed instalacją rozszerzenia zawsze zrób kopię plików systemu i bazy danych. To zapewni ci komfortową sytuację:
W każdej chwili będziesz w stanie przywrócić Twoją stronę do poprzedniego stanu.
Dlatego wygodnie jest zastosować prosty i szybki skrypt do kopiowania, który zautomatyzuje to zadanie. Jeżeli nie zastosujesz tego łatwego procesu na początku, na pewno wpadniesz w pokusę zrobienia szybkiej aktualizacji systemu bez uprzedniego zrobienia kopii. To bardzo zrozumiałe zachowanie jest jednakże przyczyną przedwczesnej utraty włosów, złamania wspaniale zapowiadającej się kariery, a nawet śmierci. ;-)

Sprawdzaj słabe strony rozszerzeń

Większość zagrożeń bezpieczeństwa spowodowana jest rozszerzeniami napisanymi przez osoby trzecie. Zanim je zainstalujesz, sprawdź Oficjalną listę zagrożonych rozszerzeń (Official List of Vulnerable 3rd Party/Non Joomla! Extensions). Jest tam całe forum poświęcone rozszerzeniom pisanym przez osoby trzecie. Subskrybuj je.

Pobieraj pliki tylko z zaufanych stron

Pełna definicja zaufanej strony brzmi: zaufana strona to ta, do której Ty masz zaufanie.

Ostrzeżenie! Sprawdzaj jakość kodu

Rozszerzenia pisane przez osoby trzecie mają różną jakość i swoje lata. Chociaż standard kodowania Joomla! istnieje, inni developerzy nie są zobowiązani go przestrzegać. Rozszerzenia na oficjalnej stronie Joomla! nie są badane pod tym kątem, jednakże jeżeli zweryfikowane zagrożenie się potwierdzi, są usuwane ze strony, aż zostaną poprawione.

Testy, testy, testy...

Testuj wszystkie rozszerzenia na stronie testowej, zanim zainstalujesz je na stronie czynnej w sieci. A potem testuj jest na stronie czynnej. Nie zapomnij sprawdzić logów pod kątem błędów wykonania i ostrzeżeń.

Usuwaj śmieci

Usuwaj wszystkie nieużywane rozszerzenia i podwójnie sprawdzaj czy związane z nimi katalogi i pliki zostały usunięte przez skrypty. Pamiętaj, że podczas odinstalowywania wiele rozszerzeń pozostawia swoje pliki na Twoim serwerze, a także swoje tablice w bazie danych. To albo zaleta albo błąd, w zależności od twojego punktu widzenia. Każdy plik pozostawiony na Twoim serwerze jest dostępny z sieci przez bezpośredni adres URL, taki jak np. http://twojastrona.com/modules/bad_module.

Unikaj szyfrowanych kodów

Joomla! jest (i pomimo różnych dezinformacji taka pozostanie) projektem GNU GPL. To oznacza, że wszystkie rozszerzenia do Joomla! muszą być wolne (jak w wolności) i mieć otwarte (dostępne) kody. Kod szyfrowany może być bezpieczny, ale sam tego nie ocenisz i musisz wierzyć developerowi. Używanie zaszyfrowanych kodów cofa cię do świata oprogramowania płatnego, w którym musisz czekać na łatkę bezpieczeństwa od developera, mając nadzieję, że włamywacze nie znajdą Twojej strony zanim łatka zostanie wydana.
Często nie masz możliwości modyfikowania, poprawiania i dzielenia się zaszyfrowanym kodem. Te ograniczenia powodują, że takie kody są mniej wartościowe dla społeczności jako całości, i redukują cechę projektu Joomla!, która zależy od otwartego dzielenia się nim przez wszystkich uczestników.
Oczywiście kod, który nie może być dalej przekazywany, jest wyłączony z wymagań dystrybucji GNU GPL. Dlatego zaszyfrowanie kodu związanego z Joomla! prowadzi do braku możliwości dzielenia się z innymi.

Dodatkowe wskazówki, sztuczki i kruczki dla Joomla!

Jeżeli to możliwe unikaj, współdzielonych serwerów

Dla maksymalnego bezpieczeństwa unikaj współdzielonych serwerów, na których nie znasz innych użytkowników, lub nie możesz im ufać, lub nie ufasz jakości ich kodów.

Używaj serwerów SSL

Usługa SSL jest obecnie jedynym sposobem zabezpieczenia poufności procesów transakcji czy autentykacji użytkowników. SSL szyfruje całą komunikację HTTP między serwerem, a klientem. Dlatego, nawet jeśli transmisja zostanie przechwycona, nie może zostać odczytana.
Joomla! 1.0.x nie zezwala na przyporządkowanie serwera SSL do indywidualnych podkatalogów. Przeszukaj oficjalne forum Joomla!, używając frazy "Toomyy Hack", aby znaleźć rozwiązanie tego problemu. Joomla! 1.5 ma zdecydowanie poprawione opcje SSL.

Używaj pliku .htaccess

Dla uzyskania dodatkowej warstwy zabezpieczenia hasłem możesz zastosować w krytycznych katalogach plik .htaccess. Zwykle wystarcza to do zablokowania typowych "skryptowych dzieciaków" (ang. script kiddie), ale powinieneś być świadomy, że sam .htaccess nie jest zabezpieczeniem wysokiego poziomu. MUSI być on używany razem z serwerem SSL dla uzyskania maksymalnego bezpieczeństwa. Serwer SSL jest wymagany do zabezpieczenia Twojej strony przed bardziej wyszukanymi atakami, jak np. packet sniffing.

Przejdź na Joomla! 1.5

Compat 10.png Najważniejsze wydanie w historii Joomla! zawiera w sobie potężne rozwiązania pod kątem bezpieczeństwa i funkcjonalności.

Włącz w swoim systemie powiadomienia o bezpieczeństwie

Zespół ds. bezpieczeństwa Joomla! dostarcza i rozsyła kanałem RSS najnowsze informacje o sytuacji w zakresie bezpieczeństwa. Poniższy FAQ opisuje jak dodać ten kanał do zaplecza twojej strony.

Wybierz listę kontrolną

  1. Lista kontrolna 1: Zanim rozpoczniesz
  2. Lista kontrolna 2: Hosting i ustawienia serwera
  3. Lista kontrolna 3: Testowanie i rozbudowa
  4. Lista kontrolna 4: Konfiguracja Joomla!
  5. Lista kontrolna 5: Administrowanie witryną
  6. Lista kontrolna 6: Odtwarzanie witryny
© Ten materiał jest dokładnym albo swobodnym tłumaczeniem artykułu http://docs.joomla.org/Security_Checklist_4_-_Joomla_Setup udostępnionego na licencji JEDL na witrynie: Joomla! Official Documentation Wiki

Dziękujemy za wkład

» Stefan Wajda [zwiastun],