Download - Zabezpiecz swoją stronę w Joomla!

Transcript
Page 1: Zabezpiecz swoją stronę w Joomla!

Zabezpiecz swoją stronę w Joomla! – od wyboru hostingu

do strony produkcyjnej

Wojciech Klocek

Page 2: Zabezpiecz swoją stronę w Joomla!

Zacznij od SIEBIe• Zainwestuj w program antywirusowy,• Nie zapisuj haseł w przeglądarce i kliencie FTP,• Zapisywanie haseł na kartkach i przyklejanie

ich na monitor czy biurko też nie jest dobrym pomysłem

Page 3: Zabezpiecz swoją stronę w Joomla!

Wybór hostinguCo powinien posiadać idealny hosting:• Support 24/7,• Regularne kopie zapasowe,• Możliwość odtworzenia lub pobrania kopii

zapasowych,• Zabezpieczenia – firewall, blokowanie portów,

systemy antywirusowe.

Page 4: Zabezpiecz swoją stronę w Joomla!

Baza danych• Używaj innego użytkownika dla bazy danych

niż główny użytkownik na hostingu• Używaj randomowych i unikalnych prefixów

tabel• Phpmyadmin jest fajny, ale…

Page 5: Zabezpiecz swoją stronę w Joomla!

Serwer FTPWyłącz w Joomla! obsługę protokołu FTP. Generalnie nie jest on w jakimkolwiek stopniu potrzebny czy używany jeśli stosujesz klienta FTP.

Page 6: Zabezpiecz swoją stronę w Joomla!

Hasła i Hasełka• Hasło powinno być w miarę silne – najbardziej

podstawowa bezpieczna kombinacja to minimum 6 znaków – pięć liter (z czego jedna duża), jedna cyfra i jeden znak specjalny,

• Przykładowo hasło Admin1# jest hasłem już w miarę bezpiecznym,

• Wbrew pozorom numer PESEL jest hasłem bezpiecznym

Page 7: Zabezpiecz swoją stronę w Joomla!

Ustawienia serwera – php.ini• disable_functions = show_source, system,

shell_exec, passthru, exec, phpinfo, popen, proc_open

• magic_quotes_gpc = 0• safe_mode = 0• register_globals = 0• allow_url_include = 0

Page 8: Zabezpiecz swoją stronę w Joomla!

Plik .htaccess• # Block out any script trying to set a mosConfig value through the URL

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]

• # Block out any script trying to base64_encode crap to send via URLRewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]

• # Block out any script that includes a < script> tag in URLRewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]

• # Block out any script trying to set a PHP GLOBALS variable via URLRewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]

• # Block out any script trying to modify a _REQUEST variable via URLRewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [OR]

• # Block out any script that tries to set CONFIG_EXT (com_extcal2 issue)RewriteCond %{QUERY_STRING} CONFIG_EXT([|%20|%5B).*= [NC,OR]

• # Block out any script that tries to set sbp or sb_authorname via URL (simpleboard)RewriteCond %{QUERY_STRING} sbp(=|%20|%3D) [OR]

RewriteCond %{QUERY_STRING} sb_authorname(=|%20|%3D)

• # Send all blocked request to homepage with 403 Forbidden error!RewriteRule ^(.*)$ index.php [F,L]

Page 9: Zabezpiecz swoją stronę w Joomla!

Użytkownicy• Wyłącz automatyczną rejestrację

użytkowników• Jeśli posiadasz włączoną rejestrację to ustaw

potwierdzenie rejestracji lub akceptację przez nowych kont przez administratorów serwisu

Page 10: Zabezpiecz swoją stronę w Joomla!

Superadministrator• Po zainstalowaniu Joomla! utwórz nowe konto

Superadministratora, a staremu zmień uprawnienia lub je usuń – inny numer ID

• Im mniej Superadminów tym stabilniejsza praca i mniej śmieci

• Zmiana domyślnej nazwy Superadmina

Page 11: Zabezpiecz swoją stronę w Joomla!

Kopie zapasowe• Rób kopie minimum raz dziennie oraz przed

każdą znaczącą zmianą na stronie• Możliwe jest również zautomatyzowanie

tworzenia kopii – Akeeba Backup oraz Cron

Page 12: Zabezpiecz swoją stronę w Joomla!

Aktualizacje• Pamiętaj o aktualizacjach, szczególnie tych

usuwających błędy krytyczne oraz luki w zabezpieczeniach

• Przy innych aktualizacjach odczekaj parę dni i poszukaj opinii czy wszystko działa prawidłowo

Page 13: Zabezpiecz swoją stronę w Joomla!

Prawa dostępu do folderów i plików

Prawa dostępu (CHMOD):• Pliki PHP – 644• Plik configuration.php – 644 (lub 444)• Pliki hmtl oraz zdjęcia - 644• Katalogi – 755• Katalog główny instalacji Joomla! - 750• Nigdy nie używaj 777, jeśli już jest to

absolutnie niezbędne ustaw 707

Page 14: Zabezpiecz swoją stronę w Joomla!

Logowanie do zaplecza• Inna ścieżka dostępu do zaplecza• Ograniczenie dostępu dla wybranych

numerów IP (w pliku .htaccess) – w przypadku stałego IP dla adminów

Deny from ALLAllow from x.x.x.x

Page 15: Zabezpiecz swoją stronę w Joomla!

.htpasswd• Utwórz w katalogu administrator plik .htpasswd• W jego wnętrzu umieść login:hasło• Utwórz plik .htaccess w katalogu administrator• Wewnąrz pliku umieść kod:

AuthName "Secured Area"AuthType BasicAuthUserFile /home/myaccount/.HTPASSWDrequire valid-user

Page 16: Zabezpiecz swoją stronę w Joomla!

Two-Factor Authentication• Dodatkowe pole z

unikalnym kluczem generowanym dynamicznie,

• Wymaga pobrania na urządzenie mobilne programu generującego klucz

Page 17: Zabezpiecz swoją stronę w Joomla!

Two-Factor Authentication

Page 18: Zabezpiecz swoją stronę w Joomla!

YubiKey

Page 19: Zabezpiecz swoją stronę w Joomla!

Certyfikaty SSL• Umożliwiają ochronę plików cookies,• Ochrona sesji,• Uwiarygodnienie połączenia certyfikatem

Page 20: Zabezpiecz swoją stronę w Joomla!

Nieużywane ZasobyElementy, których nie używasz najlepiej usunąć z CMS-a. Poza potencjalnymi błędami w kodzie, rootkitami mogą one również znacząco spowalniać działanie strony.

Dotyczy to zarówno komponentów, modułów i wtyczek, jak i szablonów.

Page 21: Zabezpiecz swoją stronę w Joomla!

Legalność• Instaluj tylko oryginalne rozszerzenia• Rozszerzenia pobrane z warezów mogą:– Zawierać złośliwy kod,– Zawierać backdoory,– Zawierać niechciane treści reklamowe oraz

przekierowania

Page 22: Zabezpiecz swoją stronę w Joomla!

Rozszerzenia• Instaluj rozszerzenia pochodzące z zaufanych

źródeł (JED, strony producentów)• Jeśli na stronie wyświetla się informacja

odnośnie rozszerzenia staraj się ją ukryć – dajesz osobie atakującej informacje z czego korzystasz

Page 23: Zabezpiecz swoją stronę w Joomla!

System komentarzy• Zastąp standardowy system

komentarzy innym, np. Disqus – zwłaszcza w przypadku K2,

• Włącz dla komentarzy Captcha,• Zapobiegaj automatycznemu

publikowaniu komentarzy – włącz ich moderację

Page 24: Zabezpiecz swoją stronę w Joomla!

Captcha ReCaptcha• Eliminuje w znaczny sposób ilość fałszywych

kont,• Praktycznie uniemożliwia botom dodawanie

komentarzy,• Znacznie ogranicza ilość otrzymywanego

spamu.

Page 25: Zabezpiecz swoją stronę w Joomla!

Rozszerzenia typu SEF• Dobry dodatek SEF zwiększa również

bezpieczeństwo strony• Maskuje on wyświetlanie w URL-u informacji

odnośnie użytego rozszerzenia• sh404SEF zawiera element zabezpieczający

zatrzymujący różne ataki i informujący o tym na maila

• Usuwa ona również Tag Generator informujący o rodzaju wykorzystywanego CMS-a

Page 26: Zabezpiecz swoją stronę w Joomla!

Rozszerzenia do zarządzania bezpieczeństwem

• Akeeba Admin Tools• jHackGuard• RSFirewall

Page 27: Zabezpiecz swoją stronę w Joomla!

Dziękuję za uwagę

http://[email protected]

690 696 232