WordPress rozpycha się w Internecie coraz mocniej, co patrząc na prostotę obsługi (od strony użytkownika końcowego, który ma zarządzać stroną), czy ilość modyfikacji, dodatków i poradników nie powinno chyba nikogo specjalnie dziwić. Sam swoim klientom bardzo często polecam właśnie stronę na WordPressie, gdyż w późniejszej pracy ze stroną okazuje się on bardzo prosty i przyjemny, a zarazem oferuje pełen zakres możliwości.

Dlatego warto zadbać dodatkowo o bezpieczeństwo – bo jak to często bywa, nim coś jest popularniejsze, tym więcej ataków…

Zabezpieczamy WordPressa

Opisując metody na zabezpieczenie WordPressa raczej skupię się na tych prostszych, które mogę wdrożyć u siebie relatywnie prosto również mniej zaawansowani użytkownicy, którzy często swoją stronę mają na hostingu współdzielonym, co też miało duży wpływ na wybór metod/sposobów.

Hasło na wp-admin

Jedna z najprostszych, a zarazem relatywnie skuteczna metoda to skorzystanie z możliwości jakie daje modyfikacja pliku .htaccess, i ustawienie dodatkowego loginu i hasła przy próbie dostępu do katalogu zarządzania Wordpresem, czyli „wp-admin”. A z racji tego, że jest to zabezpieczenie „po stronie webserwera”, to nie tak łatwo je obejść.

Sama metoda jest identyczna jak w przypadku opisywanej wcześniej metody zabezpieczenia dostępu do PhPmyAdmin, z tym że zabezpieczamy nie katalog „phpmyadmin” a „wp-admin” i plik „wp-login.php”.

W przypadku serwera Nginx wprawdzie nie mamy obsługi plików .htaccess, ale i z tym sobie poradzimy :-)

Mniej doświadczeni lub bez dostępu do shella mogą to zazwyczaj zrobić z panelu zarządzania kontem/hostingiem – co dla większości zapewne będzie lepszy/łatwiejszym rozwiązaniem:

DirectAdmin:

  • Wybieramy dowolną domenę na koncie > Katalogi na hasło > Znajdź katalog do zabezpieczenia hasłem

cPanel:

  • Bezpieczeństwo > Ochrona katalogów > Wybierz katalog który chcesz zabezpieczyć klikając na jego nazwę. Aby przejść do innego folderu, kliknij na jego ikonę.

Apache2 i Nginx

Zawsze też możemy ręczne zmodyfikować odpowiednie pliki na serwerze (Apache2 można również na hostingu współdzielonym, Nginx raczej tylko własny serwer – choć nie kojarzę ofert hostingów współdzielonych na Ngonx ;-)).

Apache2: Blokada w .htaccess

W przypadku tego webserwera najprościej wykorzystać do tego celu dodatkowy plik .htaccess, który tym razem umieścimy w katalogu „wp-admin”, a w którym wystarczy dodać te kilka linijek:

AuthType Basic
AuthName "STOP"
AuthUserFile /ścieżka/do/pliku/.htpasswd
Require valid-user

Nginx: Blokada w pliku konfiguracyjnym domeny (vHost)

W przypadku Nginx musimy zmodyfikować plik danego vHosta (strony/domeny), dodając do niego taki kod:

location ~* wp-login.php {
auth_basic "STOP";
auth_basic_user_file /ścieżka/do/pliku/.htpasswd;
}

Z racji tego, że jest to modyfikacja w pliku vHosta – musimy zrestartować serwer Nginx/lub odświeżyć jego konfigurację:

sudo service nginx restart
sudo service nginx reload

Zabezpieczamy plik konfiguracji (wp-config.php) WordPressa

Kolejnym sposobem podniesienia bezpieczeństwa WordPressa jest blokada „pobrania” pliku z jego konfiguracją, gdzie znajdują się m.in. dane logowania do bazy danych.

W przypadku serwera Apache2 edytujemy plik .htaccess i dodajemy:

<files wp-config.php>
 order allow,deny
 deny from all
 </files>

W przypadku Nginx musimy zmodyfikować plik danego vHosta (strony/domeny):

location ~* wp-config.php {
 deny all;
 }

Z racji tego, że jest to modyfikacja w pliku vHosta – musimy zrestartować serwer Nginx/lub odświeżyć jego konfigurację:

sudo service nginx restart
sudo service nginx reload

Zabezpieczamy plik wp-login.php

Od razu warto też zablokować – zabezpieczyć hasłem – dostęp do pliku wp-login.php, który jest wywoływany przy każdej próbie logowania.

Wprawdzie zabezpieczenie na „wp-admin” i tak zablokuje dostęp, ale „złośliwe jednostki” będą kierować się bezpośrednio na ten plik by spróbować złamać hasło, i nawet jeśli zablokujemy ich później na „wp-admin”, to po co niepotrzebnie obciążać sobie serwer tymi próbami…

W przypadku serwera Apache2 edytujemy plik .htaccess i dodajemy:

<files wp-login.php>
AuthType Basic
AuthName "STOP"
AuthUserFile /ścieżka/do/pliku/.htpasswd
Require valid-user
</files>

Wtyczki do WordPressa to nie tylko dodatkowe funkcje

Jeśli chodzi o wtyczki to najpierw kasujemy wszystkie wtyczki które nie są nam potrzebne, z których nie korzystamy – nawet te wyłączone.

Oprócz tego warto zainstalować jakąś wtyczkę która zadba dodatkowo o bezpieczeństwo serwisu, np.:

Warto też rozważyć dodanie do naszej strony dwuskładnikowe uwierzytelnienie, np. za pomocą usługi/funkcji Google Authenticator (oprócz loginu i hasła trzeba będzie podać dodatkowy kod – generowany raz na 30 sekund).

Konto administratora (admin)

Elementem który osobiście stosuje zawsze, to zmiana nazwy (loginu) dla domyślnego konta administratora (admin), co najprościej zrobić już na etapie instalacji/konfiguracji WordPressa – zamiast nazwy konta administratora (admin) warto wpisać (wybrać) inną nazwę.

Ale na późniejszym etapie też jest to możliwe, choć będzie troszkę trudniejsze…

Edycja bazy danych

Powinna wyświetlić się lista wszystkich użytkowników, na której należy odszukać użytkownika „admin” i wybrać ikonę „edytuj” (ołówek) by przejść do okna dialogowego w którym będzie można zmienić (m.in.) nazwę tego użytkownika (login):

Można też do tego celu wykorzystać jedną z dostępnych wtyczek, które pozwalają dokonać zmiany nazwy użytkownika bezpośrednio z panelu zarządzania, bez potrzeby edycji bazy danych:

Regularne aktualizacje

Pisząc o bezpieczeństwie nie można również zapomnieć o aktualizacjach samego WordPressa, jak i dodatków (wtyczki, skórki) które są zainstalowane. A jeśli dodatkowo korzystamy z „własnego serwera” należy pamiętać również o aktualizacjach samego systemu.

CloudFlare

Wprawdzie CloudFlare wielu osobą kojarzy się głównie z systemem CDN który pozwala „zaoszczędzić na transferze”, czy utrzymać stronę widoczną w sieci nawet przy awarii serwera, to CloudFlare pozwala również zadbać o bezpieczeństwo samej strony.

W większości przypadków wystarczy konto bezpłatne, i domyślne ustawienia…

To oczywiście nie wszystko…

Metod zabezpieczenia strony (nie tylko tej opartej o WordPress – bo niektóre są uniwersalne)  pewnie można by wymienić jeszcze przynajmniej kilka. Sam pewnie znam/stosuje jeszcze kilka „trików”, ale nie wszystkie nadają się dla „początkujących użytkowników”, jak i do „publicznej publikacji” ;-)

(!) Zgłoś błąd na stronie
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.

Patryk

CEO WebInsider.pl, a do tego CTO, CIO, CFO, CMO, CSO, COO i CRO ;-)
Pasjonat nowych technologii - od sprzętu po oprogramowanie, od serwerów po smartfony i rozwiązania IoT. Potencjalnie kiepski bloger, bo nie robi zdjęć "talerza" zanim zacznie jeść.

Dumny przyjaciel swoich psów :-)
Napisz komentarz
wipl_napisz-komentarz_01
Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.