Jak zabezpieczyć swojego WordPress’a?

WordPress to system CMS  najczęściej wybierany nie tylko przez osoby zajmujące się SEO. Jak wynika z ogólnodostępnych danych np. w serwisie w3techs.com w kategorii system CMS: WordPress ma udział na poziomie prawie 60 procent. Niestety prócz dużą dostępnością dodatków mało kto kieruje się bezpieczeństwem systemu.

Czy WordPress jest bezpieczny?

Nie. Żaden system CMS nie jest bezpieczny. Każdy należy zabezpieczyć by minimalizować ryzyko. Praktycznie każdy WordPress jest atakowany metodą słownikową średnio kilka razy na dobę w każdym tygodniu.

Zagrożenia

WordPress ma długą i bogatą historię wykrytych podatności. Większość dostępna jest na specjalnej stronie o której pisałem w tym artykule.

Podstawowe zagrożenia:

  • Atak na stronę logowania/słabe hasła
  • Luki w motywach i wtyczkach
  • Błędy w systemie CMS
  • Spam
  • i wiele innych…

Jak zabezpieczyć WordPressa?

Procedura zabezpieczenia systemu WordPress:

1. Środowisko

Podstawowym miejscem jest bezpieczne środowisko. Czyli baza danych, ftp i cała usługa jak apache2 czy inne wybrane środowisko.

W przypadku serwerów współdzielonych mamy mniej pracy. Ponieważ za bezpieczeństwo środowiska odpowiada dostawca usługi. Jednak my też nie możemy spocząć na laurach. O czym poniżej. W przypadku serwerów VPS, niestety musimy sami zadbać o konfiguracje i zmianę domyślnych ustawień serwera Apache2, wgranie certyfikatów SSL czy użycie chociażby prostego firewall’a do zabezpieczenia portów i dostępu do naszego serwera.

W celu zabezpieczenia bazy danych upewnij się, czy na swoim VPS’ie masz skonfigurowane logowanie administratora bazy danych w sposób właściwy –  Czyli np. system phpmyadmin jest dodatkowo zabezpieczony logowaniem i np. dopuszczony do logowania tylko konkretny adres ip z którego najczęściej łączysz się do bazy.

2. Instalacja

Podczas instalacji musimy pamiętać o zastosowaniu specyficznej nazwy użytkownika: Nie może to być nazwa domeny, tytuł strony. Najlepiej jeśli sformułujemy ją opierając o nasze inicjały i dodając dodatkowe znaki. Następnie musimy użyć KONIECZNIE własnego mocnego hasła. Nie sugeruj się wygenerowanym ciągiem znaków przez WordPressa, sam ustal hasło równie silne.

W przypadku bazy danych, ustalając nazwę prefixu pamiętajmy by nie zawierał nazwy strony czy domeny.

3. Wtyczki wspomagające bezpieczeństwo

Po instalacji WordPressa należy dokonać kilkunastu czynności w celu jego zabezpieczenia. W pierwszej kolejności możesz zainstalować dodatek np.

Wordfence Security

 W wersji darmowej informuje nas o wymaganych aktualizacjach, wysyła ostrzeżenia o logowaniu do panelu, o próbach ataku na stronę logowania i blokuje także adresy IP, które przekroczą normę prób nieudanych logowań.

4. Domyślne ustawienia

Konfiguracja

Jedną z pierwszych rzeczy, którą warto zmienić zaraz po zainstalowaniu WordPressa, jest wyłączenie możliwości rejestrowania się nowych użytkowników. Można to zrobić poprzez panel zarządzania, przechodząc do zakładki Ustawienia, a następnie -> Ogólne

W kolejnym kroku warto pomyśleć czy chcemy, aby komentarze do wpisów oraz podstron dodawać mogły tylko osoby zalogowane jako użytkownicy. Opcję odpowiedzialną za wymuszenie takiego zachowania znajdziemy, przechodząc do zakładki Ustawienia -> Dyskusja.

Dodatkowym zabezpieczeniem przed Spamem będzie implementacja wtyczki z Google reCapcha np.
Google Captcha (reCAPTCHA) by BestWebSoft

Niezalogowani użytkownicy nie mogą dodawać komentarzy – czy … aby jesteś tego pewien?

No nie. Należy pamiętać o tym, że jeżeli w szablonie chcemy całkowicie wyłączyć możliwość dodawania komentarzy, nie możemy ograniczyć się tylko do usunięcia z kodu formularza z pliku php. Mimo, że użytkownik nie będzie widział formularza to WordPress dalej będzie miał aktywny mechanizm odbierający komentarze i na nasze nieszczęście będzie zapisywał je w bazie. Będziemy narażeni na skanowanie po footprintach i ataki spamerskie. Dlatego zadbaj o wyłączenie komentowania w ustawieniach głównych systemu oraz w szablonie. Można to oczywiście zweryfikować w panelu administracyjnym, przechodząc do zakładki Komentarze.

 

XML-RPC – WordPress

Ogranicz dostęp przez domyślne włączone (WordPress od wersji 3.5)  API ( XML-RPC ), za pomocą wtyczki:

Disable XML-RPC

lub dopisując to:

add_filter('xmlrpc_enabled', '__return_false');

Do pliku function.php. Pamiętaj jednak, że przy aktualizacji szablonu plik może zostać nadpisany.

Zbędne zasoby

Po pomyślnej instalacji i konfiguracji WordPressa warto również zweryfikować listę domyślnie zainstalowanych wtyczek oraz motywów. Usuń wszystkie, których nie używasz. Nawet te które masz zamiar używać w przyszłości usuń. Nazwę zapamiętaj i zainstaluj w momencie kiedy będziesz jej potrzebował.

Nie ujawniaj za dużo

Ukryj wersję CMS, jaką masz na pokładzie. Uwaga, ukrycie wersji nie powinno zwalniać nas od dbania o to, by zawsze wykorzystywać najnowszą stabilną wersję i instalować aktualizacje. WordPress ujawnia wykorzystywaną wersję w kilku miejscach:

Plik readme.html w głównym katalogu aplikacji, Meta tag generator w źródle strony, Kanały RSS, Wartość parametru version (ver)  dodawanego do adresów URL stylów CSS oraz skryptów JavaScript.

5. Logowanie

Czy prócz mocnego hasła i oderwanego od tematyki i nazwy domeny, wyświetlanej nazwy loginu mogę coś jeszcze zrobić? Tak. Możemy logować się do WordPressa za pomocą Konta Google. Dzięki temu „zyskamy” dwuetapową weryfikacje. Jednak jest lepsze rozwiązanie.

W bazie wtyczek WordPress możemy znaleźć sporo rozwiązań pozwalających dodać 2 etapowie uwierzytelnienia. Jednym z takich jest wtyczka Google Authenticator , która pozwala wykorzystać możliwości, jakie dostarcza projekt o tej samej nazwie czyli– Google Authenticator for Android. Aplikacja dostępna jest na Android i iOS. Dzięki temu zyskujemy weryfikacje dwuetapową.

Logowanie możemy zabezpieczyć także po przez założenie hasła na stronę logowania i ograniczenia dostępu dla określonych hostów

 
 order allow,deny
 allow from 80.XX.XX.78



 order deny,allow
 allow from 80.XX.XX.78


Lub założenie hasła z wykorzystaniem: HTTP Basic Authentication.

<Directory "/var/www/html/ ">
 AuthType Basic
 AuthName "tell me something"
 AuthUserFile /etc/apache2/.htpasswd
 Require valid-user
 AllowOverride All
 Allow from All

Mniej widoczni

Dodatkowo możemy umieścić pliki bloga w folderze domena.pl/CiasteczkowyPotwor/, a następnie skonfigurować wyświetlany adres na domena.pl. Dzięki czemu ukryjemy nazwę folderu w którym umieszczony jest nasz blog na serwerze.

Wartą rozważenia jest również opcja zmiany domyślnych ścieżek, pod którymi WordPress udostępnia swoje najważniejsze zasoby.
Cała operacja sprowadza się do dodania odpowiednich wpisów w pliku wp-config.php. Możemy zdefiniować ścieżkę dla całego katalogu wp-content lub jeżeli preferujemy wskazać konkretne ścieżki osobno dla wtyczek, osobno szablonów oraz plików wgrywanych na serwer. Oczywiście nie uchroni nas to przed podatnościami. Jednak liczne boty skanujące sieć, będą nas omijać.
define( ‚WP_CONTENT_DIR’, dirname(__FILE__) . ‚/blog/assets’ );
define( ‚WP_CONTENT_URL’, ‚http://example.com/blog/assets’ );

6. Aktualizacje

Koniecznie bądź na bieżąco z wszystkimi podatnościami WordPressa  i aktualizuj swój system na bieżąco. Rób także kopie bezpieczeństwa. Popularna wtyczka do kopii zapasowych: Updraftplus, BackWPup.

Pamiętaj, by przed każdą aktualizacją dokonać kopii. Staraj się wykonywać je natychmiast po uzyskaniu informacji o nowej stabilnej wersji WordPressa / wtyczki czy szablonu. Nie zaniedbuj tego.

Uwaga, pamiętaj! Aby zachować trwałości zmian, które wprowadzamy. Pamiętaj, że pliki konfiguracyjne serwera oraz plik wp-config.php nie są nadpisywane w wyniku aktualizacji, ALE już plik functions.php TAK, ponieważ stanowi on część wybranego przez nasz szablonu i może zostać nadpisany!!

Weryfikacja bezpieczeństwa

Jak sprawdzić czy mój blog jest bezpieczny? Można to zrobić za pomocą skanera podatności dedykowanego dla WordPress – wpscan. Skrypt ten domyślnie można znaleźć w dystrybucji Kali Linux lub na repozytoriach GitHuba.

https://wpscan.org/

Jeżeli już wcześniej zainstalowaliśmy wpscan, wtedy przed wykonaniem kolejnego skanu warto uruchomić skrypt i zaktualizować bazy (tak jak robimy to w antywirusie).

 wpscan --update

Podstawowy skan wykonuje się, wskazując adres naszego WordPressa:

 wpscan --url

Podsumowanie

WordPress to wspaniałe narzędzie i bardzo elastyczne w rozbudowie. Jednak należy być bardzo ostrożnym przy wdrażaniu go jako poważne serwisy jak sklepy gdzie przechowywane są dane osobowe. Zadbaj o bezpieczeństwo swojego CMS’a już na etapie instalacji i konfiguracji środowiska. Bądź na bieżąco. Nie oszukuj samego siebie. Instaluj aktualizacje i dbaj o bezpieczeństwo swoich użytkowników.

 

Źródło: https://thethemefoundry.com/blog/wordpress-security/

Jak zabezpieczyć swojego WordPress’a?
Oceń wpis!

Autor

Dominik

Zajmuje się tworzeniem stron internetowych i realizacją działań SEO na rzecz dużych i małych przedsiębiorstw. Pracowałem między innymi dla Semahead czy wydawnictwa HELION. Prowadzę szkolenia z zakresu HTML5 i SEO. Każdego dnia odkrywam nowe możliwości, tak by rozwijać Twój biznes w sieci.

6 przemyśleń nt. „Jak zabezpieczyć swojego WordPress’a?”

  1. Dodaję
    add_filter(‚xmlrpc_enabled’, ‚__return_false’);

    Do functions.php w moim szablonie – zgadza się ?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *