Kurs "WordPress: Pierwsze kroki" (bezpłatna lekcja)

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, im 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 jego ikonę.

Apache2 i Nginx

Zawsze też możemy ręczne zmodyfikować odpowiednie pliki na serwerze.

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>

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):

wordpress_phpmyadmin_wp_user01

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
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Kurs "WordPress: Pierwsze kroki" (bezpłatna lekcja)
Patryk
Kurs "WordPress: Pierwsze kroki" (na dobry początek)