Nie ważne jak duża czy mała jest Twoja strona – bezpieczeństwo jest kluczowym jej elementem. Jednym z prostszych i skutecznych sposobów ochrony jest blokowanie IP uciążliwych użytkowników, by odciąć ich od dostępu do strony, tzw. blacklista. Blacklisty mogą być realizowane na kilka sposobów.
Dzięki blackliście (czarnej liście) można złagodzić lub wręcz uniknąć działań hakerów, ataków typu DDoS (Distributed Denial of Service – czyli odmowa usługi) i ataków typu „brute force”, spamu e-mailowego, spamowych komentarzy, a nawet… uciążliwych komentatorów.
W artykule przyjrzymy się, jak na czarnej liście umieścić IP użytkowników by chronić wytrynę WordPress’ową zarówno ręcznie, jak i za pomocą wtyczek.
Na początek kilka podstawowych pojęć.
Co to jest adres IP
Aby wiedzieć, co zablokować, musimy wiedzieć czego szukamy. Jaki jest adres IP i jak on wygląda?
Aby połączyć się z Siecią, nasz dostawca dostępu (operator ISP) przypisuje każdemu komputerowi lub urządzeniu adres IP. Adres ten jest częścią protokołu TCP/IP (Transmission Control Protocol/Internet Protocol). W dużym uproszczeniu to ciąg liczb, które informują przeglądarkę gdzie można znaleść witrynę.
No tak, ale przecież na codzień rzadko posługujemy się adresami IP. By to ułatwić, wprowadzono tzw. Serwery nazw DNS (Domain Name Server). To taka „książka telefoniczna” która przechowuje informacje o numerach IP i odpowiadających im nazwach domenowych.
DNS i nazwa domeny
Wpisując w przeglądarce np. http://wordpress.edu.pl, w pierwszej kolejności przeglądarka odpytuje serwer DNS (często widzimy w konfiguracji naszego połączenia internetowego ustawiony jakiś numer IP serwera DNS np. 8.8.8.8) „Szukam strony która znajduje się w domenie wordpress.edu.pl, pod jakim IP ją znajdę?” I wtedy serwer DNS zwraca jej (tej przeglądarce) numer IP serwera na którym znajduje się strona. Dzieje się to w ciąku kilku(dziesięciu) milisekund i jest do dla użytkownika praktycznie niezauważalne.
Zatem, tak jak w telefonii komórkowej podstawą połączenia jest numer telefonu, który sobie zapisujemy w książce telefonu po daną nazwą, tak w Sieci podstawą połączeń jest numer IP, który serwery DNS są w stanie przetłumaczyć na łatwiejszą do zapamiętania dla człowieka formę nazwy domenowej.
Ale żeby nie było zbyt prosto…
Istnieją dwa typy IP.
IPv4
– najpopularniejszy, już od lat 70-tych. To 32-bitowy adres z 4 zestawami cyfr 0-255, oddzielonych kropką.
Np. 194.204.152.34 (pod tym adresem w dawnych czasach krył się serwer DNS ns1.tpnet.pl – to jeszcze w czasach gdy z Siecią łączyliśmy się modemem o zawrotnej prędkości 56kbps).
IPv6
– został opracowany w latach 90-tych, ze względu na szybki przyrost serwerów w Sieci i nadciągające widmo wyczerpania się numerów IPv4. Bo jak wiadomo numery IP są unikatowe w skali całego Internetu (oczywiście mowa tu o tzw. numerach publicznych, ale to temat na oddzielny artykuł). IPv6 jest to 128-bitowy adres z 8 grupami 4 cyfr szesnastkowych oddzielonych dwukropkami.
Np. 2001:0db8:0000:0202:0000:8a3e:0370:7589
Jak widać ten IP było by już całkiem trudno zapamiętać. Istnieje sposób na skrócenie zapisu, taki jak usunięcie zer wiodących czyli
2001:0db8::0202::8a3e:0370:7589
ale i tak to niewiele bardziej pomaga w zapamiętaniu. Dlatego system nazw domenowych i serwery DNS są niezastąpione w swych „tłumaczeniach”.
Wystarczy tej teorii, przejdźmy do praktyki.
Blacklista – ręczne blokady adresów IP i użytkowników
Jeśli nie używasz pluginów, to istnieją dwie lokalizacje, w których można znaleźć IP odwiedzających. Jednym z nich jest obszar komentarzy w WordPress’ie, a drugi to logi serwera, które możesz uzyskać od swojego dostawcy usług internetowych. Tam znajdziesz IP wszystkich komputerów które łączyły się z Twoją stroną internetową, zarówno tych dobrych jak i tych złych użytkowników.
Z tymi informacjami możliwa jest do wykonania blacklista składająca się z poszczególnych użytkowników, ale też regionów czy nawet krajów.
Zatem jak to zrobić?
Blokowanie IP i użytkowników w WordPress’ie
Adresy IP osób komentujących wyświetlają się na karcie komentarzy. Wszystkie komentarze wyświetlają się z adresem e-mail i IP. Wyszukiwanie w komentarzach daje nam dodatkowe uproszczenie – widzimy dokładnie kogo chcemy zablokować, kto spamuje.
Warto zwrócić uwagę że np. pierwszy i drugi oraz trzeci i czwarty wpis, są z tego samego IP. To są adresy IP spam-botów. Zatem praktycznie blacklista prawie gotowa, wystarczy je tylko dodać do listy.
Miejsce to znajdziesz w Kokpicie, po zalogowaniu się jako administrator:
Ustawienia => Dyskusja i po przewinięciu na sam dół znajdziesz czarną listę komentarzy. Ważne jest by na liście umieścić każdy adres IP w kolejnym wierszu.
Ta metoda pomaga na spamerów, ale gdy ktoś atakuje Twoją stronę, przy próbach hakerskich niestety trzeba się „wgryźć” głębiej.
Blacklista na bazie adresów IP z logów serwera.
Każdy serwer prowadzi dokładne dziwnniki połączeń od komputerów które odwiedziły Twoją stronę. Informacje te uzyskasz w swoim Panelu Klienta u operatora hostingowego.
Np. w Zenboxie wygląda to tak:
Przykładowe informacje z logów serwera wyglądają tak:
Tutaj jak widać zdecydowanie trudniej odróżnić intruza od pożądanego internauty. Logi zawierają sporo więcej informacji niż potrzebujemy. Informują o tym z jakiego IP, kiedy, jaką metodą (GET,POST) do jakiego zasobu naszej strony odwiedzający usiłował się dostać i jaka była na to odpowiedź serwera (200), jakiej używał do tego przeglądarki (Mozilla) i w jakim języku (PL).
Mając te dane i wiedząc kto jest intruzem a kto mile widziany, możesz przystąpić do blokowania.
Najprostszym (ale nie oferowanym przez wszystkich usługodawców hostingowych) jest blokowanie w Panelu Klienta w sekcji Security/Bezpieczeństwo. Tej opcji nie ma niestety wskazany wyżej Zenbox. Ale np. w panelu cPanel wygląda to następująco:
Blokowanie adresów IP za pomocą wtyczek
Jednym z problemów związanych z ręcznym blokowaniem adresów IP jest to że mogą być one losowe, z dużej puli adresów, co w praktyce zmusi Cię do ciągłego dopisywania kolejnych adresów.
Często trudno nadążyć. Znacznie lepszym rozwiązaniem są tutaj wtyczki. Istnieje kilka dobrej jakości wtyczek, zarówno tych za free jak i płatnych.
Przyjrzymy się tutaj kilku bezpłatnym.
Wordfence
Wtyczka ta cieszy się zarówno dobrą jak i złą sławą. Dobrą, wtedy gdy rzetelnie dbamy o bezpieczeństwo swojej strony, wtyczka też zachowuje się poprawnie. Niestety gdy jednak komuś uda się włamać na stronę, należy niezależnie od tego, czy wydaje się nam że wtyczka nie została zainfekowana, podmienić pliki wtyczki na nowe, z bezpiecznego źródła. Niestety wtyczka ta jest bardzo podatna na „wyłączenie” zabezpieczeń tak by właściciel strony się nie spostrzegł. Dlatego wykorzystanie jej jako jedynego zabezpieczenia, nie jest dobrym rozwiązaniem.
Nie mniej z blokowaniem niechcianych gości radzi sobie nawet lepiej niż bardzo dobrze.
Wordfence ma zaporę, w której można tworzyć reguły blokowania i blokować według IP, kraju i jakiegoś wzorca. Chroni także przed atakami „brute force”, poprzez ograniczenie ilości prób logowania.
Z tych raportów można pobrać adresy IP co do których WordFence ma wątpliwości i sugeruje podejrzane działania. Widać tu też wszystkich odwiedzających, zarówno tych właściwych jak i niemile widzianych. WordFence potrafi wskazać który odwiedzający jest człowiekiem a który botem identyfikuje niektóre jako ostrzeżenia i też wskazuje które IP zostały zablokowane. W powyższym przykładzie widzimy kilka botów z Rosji, które możemy zablokować.
Sugeruję wprowadzać adresy IP oraz przyczynę blokady, by później wiedzieć z jakiego powodu został zablokowany, jeśli ponownie przyjdzie się zastanawiać nad ich zablokowaniem.
Możemy też zablokować cały kraj, ale wymagać to będzie licencji Premium.
Można też blokować IP w oparciu o niestandardowe wzorce. Mogą one obejmować zakres adresów IP, nazwę hosta, przeglądarkę czy stronę odsyłającą.
iThemes Security
IThemes Security ma funkcjonalność o nazwie Banned Users. Ma też lokalną i sieciową ochronę przez atakami „brute force”. Można włączyć domyślną blacklistę ze strony HackRepair.com. Jest to bardzo dobre rozwiazanie gdyż lista ta jest globalnie stale uzupełniana.
Właczając Ban Lists włączamy możliwość dodawania poszczególnych IP do listy, możemy dodać konkretne hosty do banowania, jak też przeglądarki. No i dobre jest to że nawet przez przypadek nie możesz sam siebie zbanować 😉 . Możesz tu wprowadzić listę adresów IP i zapisać ją.
Wersja Premium zawiera też funkcję kontroli bezpieczeństwa użytkownika.
Logi wyświetlają ważne zdarzenia i udostępniają nazwy hostów, dzięki czemu możemy je jednoznacznie zidentyfikować i zbanować.
All in One WP Security & Firewall
All in One WP Security & Firewall ma bardzo dobrego managera blacklisty, w którym można blokować adresy IP i programy klienckie. Jest też dodatek który umożliwia dodanie do blacklisty ruchu z danego kraju. Funkcja blokady logowania, chroni przed wielokrotnymi próbami nieudanego logowania.
Ma ona też narzędzie do identyfikacji – można dowiedzieć się kogo blokujemy (WHOIS).
Ciekawym rozwiązanie jest też narzędzie do monitorowania adresów IP spamerów. Można tu przeglądać, wyszukiwać i blokować zbiorowo IP z których przychodzi spam.
Link do All in One WP Security & Firewall
Podsumowanie
Blacklista to świetny sposób na polepszenie poziomu bezpieczeństwa Twojej strony i ochrony przed spamem. Wymieniłem tutaj tylko najprostsze metody blokowania niechcianych gości, nie wymagające wiedzy i doświadczenia informatycznego.
Istnieją też inne sposoby radzenia sobie ze spamem, takie jak wtyczki blokujące spam, ale zablokowanie IP bota wysyłającego spam zdecydowanie odciąża działanie takiej wtyczki, co ma bezpośrednie przełożenie na stopień obciążenia strony i przepustowość.
Ręczne blokowanie IP jest proste, jednak wtyczki oferują więcej dodatkowych funkcjonalności, takich jak dokładniejsza identyfikacja osób z wieloma próbami logowania, blokowanie znanych źródeł spamu, czy źródeł infekcji, jak też innych funkcji bezpieczeństwa.
Istnieje też wiele wtyczek i metod na wygenerowanie blacklisty. Korzystając z opisanych przeze mnie metod, możesz łatwo zablokować niechciane adresy IP i użytkowników oraz chronić swojego WordPress’a, dzięki czemu będzie on też bezpieczniejszy dla tych chcianych gości na stronie.
Należy też pamiętać, że same wtyczki nie załatwią nam problemu bezpieczeństwa. Bezkrytyczne podchodzenie do informacji od nich płynących, może przysporzyć nam dodatkowych problemów.
Niestety wtyczki są na tyle bezpieczne co nasza świadomość o tym że zawsze może gdzieś pojawić się podatność. Stąd ochrona strony powinna być wielopoziomowa i na wielu polach, ale o tym kiedy indziej.
A jaka jest Twoja preferowana metoda blokowania adresów IP? Napisz proszę w komentarzu.