Coraz częściej użytkownicy aplikacji WordPress narażeni są na próby przechwycenia danych oraz włamań, głównie do panelu administracyjnego wp-admin. Bieżące aktualizacje i dodatki do CMS WordPress zazwyczaj radzą sobie z zabezpieczeniem naszej strony WWW przed popularnymi zagrożeniami, które wynikają z popularności systemu WordPress. Warto jednak zastanowić się nad dodatkowym zabezpieczeniem naszej strony WWW, która oparta jest o CMS WordPress.
Dodatkowa ochrona panelu administracyjnego WordPress może być realizowana poprzez:
- ograniczenie dostępu dla tylko wydzielonego adresu IP (.htaccess),
- podwójną autoryzację do panelu administracyjnego wp-admin (.htpasswd),
- dodanie pliku index.html do katalogu wp-admin,
- zainstalowanie dodatków i rozszerzeń do systemu CMS,
- usunięcie informacji dotyczących używanej wersji WordPress,
- zmiana standardowego loginu admin na inny,
- korzystanie z dodatkowej ochrony komputera (np. oprogramowanie antywirusowe).
Zachowanie bezpieczeństwa strony WWW to fundamentalna zasada jej tworzenia oraz udostępniania w sieci.
Prosta obsługa i dostępność popularnych systemów zarządzania treścią (np. WordPress), spowodowały że utworzenie strony internetowej pozostaje kwestią minut. Popularność systemu CMS sprawia także, że staje się on ulubionym celem, np. hakerów. O ile duża część użytkowników wprowadza dodatkowe zabezpieczenia, większość nadal korzysta z podstawowych ustawień aplikacji, co powoduje, że wystawieni są na różnego rodzaju ataki, które wykorzystują sprawdzone luki w bezpieczeństwie systemu.
Czy powinieneś się bać ataku na swoją stronę? Nie ma 100% gwarancji, że Twoja strona, czy to wizytówka czy portal społecznościowy liczący miliony użytkowników, nie zostaną zaatakowane. Warto jednak zadbać o bezpieczeństwo na etapie tworzenia strony, niż po jej uszkodzeniu.
Fundamentalną zasadą jest przede wszystkim utrzymywanie i wykonywanie kopii zapasowych. Na ich podstawie będziesz w stanie nie tylko przywrócić stronę WWW, ale i zidentyfikować ewentualne zmiany, jakie zostały wykonane podczas ataku.
Ograniczenie dostępu do panelu z jednego adresu IP
Najpopularniejszym i zarazem najprostszym sposobem zabezpieczenia panelu administracyjnego CMS WordPress jest ograniczenie dostępu do niego, tylko dla połączeń z danego adresu IP.
Przed wykonaniem tej konfiguracji, warto upewnić się, że przydzielony nam adres IP jest stały. Takie informacje uzyskasz od dostawcy Internetu. W przypadku zmiennego adresu IP, jego aktualizację wykonasz modyfikując regularnie plik .htaccess lub dodając pulę adresów IP (jest to mniej bezpieczne rozwiązanie).
Aby ograniczyć dostęp do katalogu tylko dla jednego adresu IP, w pliku .htaccess umieść poniższe dyrektywy:
AuthName "Example Access Control" AuthType Basic order deny,allow deny from all allow from 46.242.149.10
Zamiast adresu „46.242.149.10” wpisz adres IP, który ma mieć dostęp do panelu administracyjnego wp-admin. Przygotowany w ten sposób plik .htaccess należy umieścić w katalogu wp-admin.
BasicAuth, czyli podwójne logowanie do zaplecza strony
W zależności od naszych możliwości i potrzeb, możemy rozszerzyć utworzony wcześniej plik .htaccess o dodatkowe wymuszanie autoryzacji dodatkowym loginem i hasłem.
Stosując podwójną autoryzację, w pierwszej kolejności wywołanie panelu administracyjnego, skutkować będzie prośbą „od serwera” o podanie uprawnień dostępu do katalogu /wp-admin, dopiero po pierwszej autoryzacji nastąpi wywołanie okna logowania do panelu wp-admin, gdzie podajesz właściwe dane dostępowe do konta administratora w WordPress.
W ten sposób możemy ograniczyć dostęp do panelu administratora i wszystkich jego plików nie tylko z jednego adresu IP (jak podaliśmy w poprzednim punkcie), ale także za pomocą dodatkowego loginu i hasła dostępu (przydatne, jeśli w jednej sieci na jednym adresie IP pracuje więcej niż jeden użytkownik).
Aby wprowadzić dodatkowe okno autoryzacji (z osobnym loginem i hasłem), utwórz lub edytuj plik .htaccess w katalogu /wp-admin. W pliku .htaccess umieścić poniższe dyrektywy:
AuthType Basic AuthName "Wymagana autoryzacja:" AuthUserFile .htpasswd Require valid-user
Następną wymaganą czynnością jest utworzenie pliku .htpasswd, który będzie zawierał nazwy użytkowników oraz ich hasła dostępu. Zawartość pliku .htpasswd tworzy się według poniższego schematu:
nazwa_uzytkownika:hasło_dostępu
Odpowiednie loginy i hasła do pliku .htpasswd możesz zakodować pod tym adresem. Pamiętaj, aby na podanej stronie wybrać algorytm kodowania o nazwie crypt(). Więcej informacji na temat pliku .htpasswd w home.pl możesz przeczytać pod tym adresem.
kowalski:OUAjBiIAMyfvg
Oba pliki .htaccess oraz .htpasswd umieść w katalogu /wp-admin na serwerze FTP w katalogu ze stroną internetową. Pamiętaj, aby podczas kodowania hasła wybrać algorytm kodowania o nazwie crypt(). Efektem powyższych działań, będzie każdorazowe pojawienie się dodatkowego okna logowania podczas uruchamiania panelu administracyjnego WordPress.
Dodatkowy plik index.html w katalogu /wp-admin
Podczas wywoływania panelu administracyjnego WordPress, zwykliśmy wpisywać adres w postaci: www.domena.pl/wp-admin. Wywołanie tego adresu powoduje uruchomienie pliku index.php, tj. www.domena.pl/wp-admin/index.php. Plik znajduje się w katalogu /wp-admin i jest odpowiedzialny za wywołanie konsoli logowania.
Warto w tej sytuacji przypomnieć, że w pierwszej kolejności na serwerach hostingu współdzielonego, o ile nie zostały wprowadzone ręczne zmiany w konfiguracji, wywoływane są pliki .html, np. index.html, dopiero w następnej kolejności będą to pliki index z rozszerzeniem .php
Jeśli do katalogu /wp-admin wprowadzimy dodatkowy pusty plik index.html (czyli bez zawartości), to wywołanie domyślnego adresu www.domena.pl/wp-admin, spowoduje wyświetlenie tylko białej strony. Aby w dalszym ciągu móc zalogować się do panelu administracyjnego wp-admin, konieczne będzie ręczne wpisanie adresu w postaci: www.domena.pl/wp-admin/index.php
Powyższe rozwiązanie raczej nie będzie skuteczne w przypadku ataku aplikacji/robota, może jednak skutecznie zniechęcić potencjalnego nowiciujsza, który odkryje w takim działaniu błąd aplikacji i zaniecha dalszych prób „zgadywania” loginu i hasła do panelu administracyjnego.
Jeśli dodatkowo zamiast białej strony chcielibyśmy przekierować użytkownika z adresu www.domena.pl/wp-admin na inny adres, to możemy w pliku index.html dodać poniższy wpis, gdzie zamiast adresu „mojadomena.pl” należy podać adres URL, na który użytkownik ma zostać przekierowany.
<meta http-equiv="refresh" content="0;url=http://mojadomena.pl">
Dodatek do WordPress iThemes Security (Better WP Securit)
Innym sposobem zabezpieczenia panelu administracyjnego jest instalacja odpowiednich dodatków, np. rozszerzenia iThemes Security, które można pobrać ze strony http://wordpress.org/plugins/better-wp-security/. Jedną z możliwości rozszerzenia iThemes Security jest ochrona panelu administracyjnego przed atakami typu „Brute-force”.
Dodatkowo rozszerzenie „Better WP Security” umożliwia m.in.:
- zmianę domyślnego użytkownika admin,
- cyklicznie wykonywanie kopii zapasowej bazy danych,
- zmiana nazwy przedrostka w tabeli MySQL,
- ochrona przed Botami,
- wprowadza dodatkowe zabezpieczenia podczas logowania, np. kody SMS,
- zabezpieczenia typu ReCaptcha,
Z pełną listą możliwości rozszerzenia zapoznasz się na stronie http://wordpress.org/plugins/better-wp-security/ .
Warto także zweryfikować działanie podobnych wtyczek, dostępnych bezpłatnie lub odpłatnie w sieci Internet. W przypadku korzystania z mniej wiarygodnych i nieaktualizowanych wtyczek, może się okazać, że w przypadku ataku na stronę WWW rozszerzymy tylko obszar jaki może być wzięty za cel przez intruza. Stanie się tak właśnie za sprawą dodatkowych plików wtyczki, które mogą zawierać niezaktualizowane luki bezpieczeństwa.
Dlatego niezależnie czy zdecydujecie się na korzystanie z samego WordPressa, czy także z dodatków zwiększających jego bezpieczeństwo, zawsze sprawdzajcie dostępne aktualizacje.
Usuń informacje o wersji WordPress jaką używasz
W nagłówku strony utworzonej w CMS WordPress zapisywane są między innymi informacje o wersji używanej przez nas aplikacji. Znaczenie tej informacji jest takie, że wprawiony użytkownik jest w stanie szybko odszukać wszystkie informacje dotyczące potencjalnych dziur w zabezpieczeniach oraz sprawdzonych sposobów na ingerencję w stronę WWW.
Usunięcie tej informacji nie zwalnia nas z regularnych aktualizacji oprogramowania. I odwrotnie.
Informacje dotyczące wersji systemu WordPress odnajdziesz w pliku functions.php, który znajduje się w katalogu skórki. Dodaj do tego pliku poniższy kod, aby usunąć informacje o używanej wersji oprogramowania:
<?php remove_action('wp_head', 'wp_generator'); ?>
W zależności od używanej skórki, informacje o wersji WordPress mogą być często dostępne także w pliku header.php. W tym wypadku, po prostu skasuj w tym pliku poniższy wpis:
<meta name=“generator” content=“WordPress <?php bloginfo(’version’) ?>” />
Login Admin – statystycznie najczęściej atakowany
Najczęściej wybieranym loginem do jakiegokolwiek systemu jest słowo admin lub twoje imię.nazwisko. Jeśli więc przyjmiemy, że robot lub człowiek, który będzie chciał złamać hasło dostępu, zacznie swoje próby złamania hasła dostępu od loginu admin. W praktyce oznacza to, że intruz statystycznie zna login do większości systemów. Pozostaje mu tylko zdobyć hasło.
Wychodząc od tej krótkiej informacji radzimy, aby nie ustawiać loginów, ale także haseł, które są logicznym ciągiem znaków, popularnymi słowami lub domyślnymi wartościami proponowanymi przez system. Każda modyfikacja tych danych, np. przez przestawienie znaków lub dodanie własnych znaków specjalnych, spowoduje że złamanie naszych danych dostępowych będzie o wiele trudniejsze!
Ochrona komputera (oprogramowanie antywirusowe)
Działania zmierzające do ochrony komputera, to przede wszystkim stosowanie programów antywirusowych oraz korzystanie ze sprawdzonych klientów FTP/SSH. Warto także pamiętać o nie zapisywaniu haseł bezpośrednio w pamięci aplikacji (np. klientów FTP).
Te pozornie proste i błahe metody są często pomijane w ochronie stron WWW, poczty i swoich danych, tymczasem warto pamiętać, że posiadanie wirusa czy innego programu szpiegującego na komputerze, może łatwo doprowadzić do wycieku naszych danych w tym loginów i haseł.
Jeśli już zrealizowaliśmy pierwszy punkt, instalując odpowiednie oprogramowanie ochraniające komputer, nie zapominajmy mimo wszystko o właściwym przechowywaniu danych dostępowych:
- nie zapisujemy ich w notatniku i nie umieszczamy na Pulpicie, korzystamy z menadżerów haseł, np. darmowego KeePass lub Kaspersky Password Manager (Android),
- unikamy zapamiętywania loginów i haseł w przeglądarce lub innych aplikacjach jak np. klient FTP, SSH,
- regularnie aktualizujemy hasła i pamiętamy o stosowaniu wielu, różnych znaków, niekoniecznie układających się w logiczną całość.
Hosting stworzony dla WordPressa
Masz stronę WWW na WordPressie? My też uwielbiamy ten system dla stron internetowych. Dlatego stworzyliśmy hosting specjalnie dla jego użytkowników.