Poważnym problemem trapiącym ostatnio strony oparte na popularnym Wordpress'ie są próby włamania za pomocą metody brute force.

Metoda ta w dużym skrócie polega na próbie zgadnięcia hasła. Włamywacz dysponuje słownikami oraz posiada listę najpopularniejszych haseł stosowanych w internecie (zdziwilibyście się, gdybyście wiedzieli ile osób posiada login admin i hasło admin ;) ) i po kolei próbuje się zalogować, używając słów z listy. Jeżeli to nie pomoże - generuje różne generacje znaków i próbuje za pomocą tak skonstruowanych haseł włamać się do panelu zarządzania stroną opartą w Wordpress'a.

Po co mu to? Na pewno nie po to, żeby wkleić nam na stronę zdjęcie słodkiego kotka ;). Mając dostęp do panelu zarządzania stroną opartą na Wordpress'ie, włamywacz może np:

  • za pomocą wbudowanego w Wordpress'a edytora kodu dokleić złośliwy kod do naszej strony i infekować komputery odwiedzających,
  • wgrać na serwer tzw. phpshell i korzystać z niego poprzez stronę jak z managera plików,
  • wysłać spam,
  • zmienić nam na stronie numer konta bankowego i odbierać nasze przelewy,
  • i wiele innych rzeczy, które na pewno by się nam nie spodobały.

Jeżeli na Twojej stronie nie dajesz swoim użytkownikom możliwości logowania, możesz spróbować się zabezpieczyć. Omówimy w tym artykule dwie metody - limitowanie dostępu do swojej strony za pomocą dopuszczenia logowania tylko ze swojego adresu IP, oraz wymuszenie dodatkowej autoryzacji, jeszcze przed uzyskaniem dostępu do strony logowania Wordpress'a. 


Certyfikat SSL i kopie zapasowe - zadbaj o bezpieczeństwo swojego biznesu


Ograniczanie dostępu do strony poprzez filtrowanie adresów IP

W bardzo dużym uproszczeniu adres IP to adres komputera, z którego łączysz się w danym momencie z internetem. Niestety może on się zmieniać, co spowoduje że stracisz dostęp do panelu. Taki problem spotkać może np. użytkowników sieci DSL (Orange, Netia). Jeżeli jednak Twój adres IP jest stały lub zmienia się rzadko - ta metoda jest dla Ciebie.

Jeżeli nie wiesz, jaki masz adres IP, możesz po prostu wejść na stronę http://www.speedtest.net/ gdzie możesz zobaczyć swój adres IP, z którego w danej chwili łączysz się z internetem:

speedtest

W lewym dolnym rogu grafiki na stronie pokaże się nam adres IP, z którego się łączymy. W tym przypadku jest to adres 192.166.202.132.

Następnie za pomocą edytora plików tekstowych  (Word nie jest edytorem plików tekstowych, może to być np. Notatnik) tworzymy plik o nazwie .htaccess (tak, z kropką na początku). I tu jedna ważna uwaga - w systemie Windows domyślnie ten plik uzyska rozszerzenie .txt i będzie się nazywał .htaccess.txt - Windows po prostu ukryje znane sobie rozszerzenie .txt. Nasz plik nie może mieć tego rozszerzenia - nazywa się po prostu .htaccess - bez niczego na końcu. Aby upewnić się, że jego nazwa jest właściwa, musimy wyłączyć ukrywanie rozszerzeń znanych plików. Jest to świetnie opisane na stronie firmy Microsoft.

Do naszego pliku .htaccess musimy wpisać odpowiednie regułki. Oto one:

# Wpuszczamy tylko nasz adres

Allow From 192.166.202.132

# I blokujemy całą resztę

Deny From All

Tak przygotowany plik wgrywamy na swój serwer za pomocą ftp, do katalogu głównego swojego Wordpressa. Informację o tym jak zalogować się przez ftp na naszych serwerach, znajdziecie w naszej pomocy.

UWAGA - pliki z kropką na początku, to pliki ukryte w systemach linuksowych. Musicie więc w swoim kliencie ftp włączyć pokazywanie plików ukrytych, aby je zobaczyć.

Osoba, która będzie chciała się zalogować do naszego Wordpressa, a jej adres IP nie będzie na liście, zobaczy informacje o zabronionym dostępie:
dostęp zabroniony

A co w przypadku, jeżeli zmieni się nam adres i sami zobaczymy informację o zabronionym dostępie? Wystarczy zalogować się ponownie na swój serwer przez ftp i zaktualizować adres IP w pliku .htaccess.

Limitowanie dostępu za pomocą dodatkowej autoryzacji

Drugą metodą zabezpieczenia strony logowania Wordpress'a jest wymuszenie dodatkowej autoryzacji. Ma to znaczenie o tyle, że potencjalny atakujący będzie musiał się zautoryzować, zanim jeszcze uzyska jakikolwiek dostęp do strony logowania.

Aby to wykonać, musimy przygotować dwa pliki. Jeden to wspomniany wcześniej .htaccess, a drugi plik, to .htpasswd

Do pliku .htaccess wpisujemy:

AuthType Basic

AuthName "Authentication Required"

AuthUserFile "/home/SERWER/docroot/htdocs/DOMENA/.htpasswd"

Require valid-user

gdzie:

SERWER to nazwa serwera w i-host.pl

DOMENA to domena w której znajduje się Wasz Wordpress.

Jeżeli więc macie u nas serwer o nazwie kowalski, a domena w której pracuje Wasz Wordpress to jankowalski.pl, jako nazwę ścieżki w wierszu AuthUserFile wpisujecie:  "/home/kowalski/docroot/htdocs/jankowalski.pl/.htpasswd".

Następnie trzeba przygotować plik .htpasswd. Przy jego tworzeniu należy pamiętać o takich samych zasadach jak przy tworzeniu pliku .htaccess - plik tekstowy z kropką na początku, bez rozszerzenia.

W pliku tym znajduje się nasz login oraz zakodowane hasło. Jeżeli macie dostęp do systemu Unix/Linux z zainstalowanymi plikami serwera Apache, plik taki możecie wygenerować poleceniem:

# htpasswd -c .htpasswd kowalskiNew password:Re-type new password:Adding password for user kowalski

Tak przygotowany plik można już wgrać na serwer.

Jeżeli jednak nie macie dostępu do systemu Unix/Linux - przygotowaliśmy dla Was generator zawartości plików .htpasswd. Generator można pobrać stąd. Po jego pobraniu należy go rozpakować, wgrać rozpakowany katalog do katalogu głównego gdzie znajduje sie Wasz wordpress i wejść na stronę - zakładając, że macie domenę jankowalski.pl: http://jankowalski.pl/generator/generator.php

generator

Po zapisaniu ciągu znaków jan:{SHA}9W8iihv7sUaDthoeO0Lz6qPFjYE= w pliku .htpasswd można wgrać go na serwer.

Można połączyć obie metody

Allow From 192.166.202.132

Deny From All

AuthType Basic

AuthName "Authentication Required"

AuthUserFile "/home/kowalski/docroot/htdocs/jankowalski.pl/.htpasswd"

Require valid-user

Opisane wyżej metody na pewno nie uchronią Was w 100% przed atakiem na Waszą stronę, jednak na pewno ograniczą możliwości potencjalnemu włamywaczowi.