W tym poradniku znajdziesz wartościową wiedzę na temat blokowania adresu IP za pomocą .htaccess, która pomoże Ci wzmocnić bezpieczeństwo strony internetowej. Gdy przeczytasz ten poradnik do końca to dowiesz się z niego jak krok po kroku zablokować pojedynczy adres IP lub całą ich pulę, dzięki czemu ograniczysz na swojej stronie potencjalnie niebezpieczny i niechciany ruch z internetu. Porady, które znajdziesz poniżej przydadzą Ci się zarówno w blokowaniu adresów IP dla platformy WordPress, jak i w przypadku innych stron pracujących na serwerze Apache.
Serwer Apache i plik .htaccess
Na samym początku przyda się kilka słów wyjaśnienia o tym, czym jest serwer Apache oraz plik .htaccess. Pierwszy z nich to otwarty serwer HTTP dystrybuowany na licencji wolnego oprogramowania oraz dostępny m.in. dla Windows, Linux oraz MacOS. Oznacza to więc, że serwer Apache jest w 100% darmowy, a także dostępny dla najpopularniejszych systemów operacyjnych. Z tego też względu Apache od momentu jest powstania w 1995 roku jednym z najbardziej popularnych serwerów webowych i nie przeszkadza mu utrzymaniu swojej wysokiej pozycji także spora konkurencja na tym polu. Pod tym względem wyprzedza go obecnie tylko nginx, a sam Apache najczęściej krytykowany jest za kwestie związane z wydajnością oraz bezpieczeństwem. Wiele jednak w tym przypadku zależy od jego konfiguracji, a sam Apache obecnie wspiera już najnowsze standardy webowe oraz wspomniany właśnie plik .htaccess, który pozwala na łatwą i praktycznie nieograniczoną konfigurację katalogu strony internetowej.
Plik .htaccess to bowiem najważniejszy plik konfiguracyjny, który umieszczony jest w domyślnym katalogu public_html
zawierającym jak sama nazwa wskazuje publicznie dostępne pliki. Plik .htaccess zawiera tzw dyrektywy, które mogą dodać lub zastąpić istniejące ustawienia, które w przypadku serwera Apache znajdują się w pliku httpd.conf
. W tym przypadku możemy więc za pomocą pliku .htaccess
nadpisać konkretne ustawienia serwera Apache także dla wybranych podkatalogów. Plik .htaccess dodawany jest automatycznie po instalacji i pierwszym zapisaniu ustawień platformy WordPress o czym więcej przeczytasz w naszym poradniku Jak zainstalować WordPress. Nie znajdziemy go jednak na serwerach nginx, czy też LiteSpeed.
Przykładowa konfiguracja czystego pliku .htaccess dla WordPress może wyglądać następująco:
# BEGIN WordPress # Dyrektywy zawarte między "BEGIN WordPress" oraz "END WordPress" # są generowane dynamicznie i powinny być modyfikowane tylko za pomocą # filtrów WordPressa. Zmiany dokonane bezpośrednio tutaj będą nadpisywane. <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Nie będziemy dalej brnąć w temat tego co możemy zrobić za pomocą pliku .htaccess 🤓 ponieważ jego ogromne możliwości poznasz, gdy tylko dowiesz się jak łatwo i skutecznie możesz zablokować w nim wybrane adresy IP. Zanim jednak to zrobisz zachęcamy Cię także do przeczytania naszego poradnika Jak zabezpieczyć panel administracyjny WordPress, z którego również dowiesz się nieco więcej na temat pliku .htaccess w kontekście zabezpieczania strony internetowej. Jeżeli będzie Ci mało to w poradniku Bezpieczeństwo WordPress znajdziesz dziesiątki praktycznych porad jak zwiększyć bezpieczeństwo platformy WordPress w 2024.
Jak zablokować adresy IP w .htaccess
Przedstawimy Ci teraz kilka sposób na to jak zablokować IP w .htaccess w zależności od celu, który chcesz osiągnąć. Aby jednak tego dokonać pierwszą rzeczą, którą musisz zrobić to pobrać plik .htaccess z głównego folderu strony internetowej, czyli public_html na swój dysk. Możesz także wykonać jego kopię dzięki czemu w przypadku problemów z łatwością przywrócisz prawidłowo skonfigurowany plik .htaccess. Najłatwiejszym na to sposobem jest usunięcie kropki [.] z początku nazwy pliku i w taki sposób wgranie go z powrotem na swój serwer.
Gdy już wykonasz kopię pliku .htacccess to musisz pamiętać, że błędna jego konfiguracja może całkowicie zatrzymać działanie Twojej strony internetowej, jednak w takim przypadku bardzo pomocne może okazać się jego usunięcie. Choć plik .htaccess zawiera bardzo istotne dyrektywy konfiguracji Apache, to jednak nie jest on niezbędny do działania nawet w przypadku platformy WordPress. Mimo wszystko zalecamy, aby dokonywane przez Ciebie zmiany były wykonywane tylko i wyłącznie na kopii tego pliku oraz najlepiej środowisku testowym.
Blokowanie adresów IP w .htaccess może znacznie podnieść bezpieczeństwo zarówno Twojej strony internetowej jak i całego serwera, na którym się ona znajduje. Modyfikując plik .htaccess. możesz w łatwy sposób, o czym przeczytasz poniżej, zablokować kraje i/lub kontynenty, które mogą być przyczyną ataków takich jak DDoS na Twoją stronę internetową. Z pomocą blokady adresów IP w .htaccess możesz również uniemożliwić dostęp do Twoich produktów i usług dla użytkowników w lokalizacji, w których nie możesz lub nie chcesz ich dostarczać. Umiejętne posługiwanie się dyrektywami pliku .htaccess pozwoli Ci także na ograniczenie dostępu tak, aby panel administratora WordPress był dostępny tylko z konkretnej sieci, a nawet urządzenia. Blokowanie adresów IP w .htaccess pozwoli Ci bowiem w ogromny stopniu podnieść bezpieczeństwo strony internetowej, jak i platformy WordPress, która może się na niej znajdować. Metoda ta w dużej mierze działa podobnie jak typowa zapora sieciowa, a jej największą zaletą jest to, że połączenie z wykluczonego adresu IP blokowane jest jeszcze zanim klient uzyska dostęp do treści, które znajdują się na domenie internetowej.
Poniżej znajdziesz najpopularniejsze metody blokowania adresów IP za pomocą pliku .htaccess. Możesz skorzystać z każdej z nich umieszczając je w osobnych linijkach kodu w pliku .htaccess. Przetestuj zaproponowane przez nas sposoby na blokowanie adresów IP w .htaccess i wybierz ten z nich, który najbardziej odpowiada Twoim potrzebom pamiętając jednak, że blokada zbyt szerokich pól adresów IP może uniemożliwić np. indeksowania strony przez popularne roboty. Dyrektywy blokady adresu IP powinny znaleźć się na samym początku pliku .htaccess, dzięki czemu będą one miały wyższy priorytet i pozwolą zablokować niechciany ruch internetowy jeszcze przed wykonaniem kolejnych komend np. dla WordPress.
Blokada adresu IP w .htaccess
Blokowanie pojedynczego adresu IP w .htaccess jest bardzo proste i do tego celu wystarczy, że dodasz poniży kod na jego początku:
Deny from 123.123.123.123
Jedyne co musisz zrobić to zmienić przykładowy adres IP 123.123.123.123
na dowolny, który chcesz zablokować. Możesz dodać wiele adresów IP w lini jedna po drugiej.
Blokada adresów IP w .htaccess
Jeżeli nie chcesz dodać wielu linijek z powyższym kodem to możesz również skorzystać z możliwości blokady wielu adresów IP tak jak na poniższym przykładzie.
Deny from 111.111.111.111 222.222.222.222 333.333.333.333
Oddzielając adresy IP spacją sprawisz, że w tym przypadku zostanie zablokowany każdy z nich tj. 111.111.111.111
, 222.222.222.222
oraz 333.333.333.333
za co odpowiada w tym przypadku dyrektywa Deny from
.
Blokada adresów IP domeny w .htaccess
Aby zablokować adresy IP przypisane do całej domeny internetowej musisz w tym celu dodać poniższą linijkę kodu:
Deny from 123.123.123.123/255.255.255.0
Aby ta metoda zadziałała musisz oczywiście zamienić przykładowy adres IP 123.123.123.123
na ten, który odpowiada domenie internetowej, a także adres maski podsieci jeżeli jest inny niż 255.255.255.0
.
Blokada adresów IP podsieci w .htaccess
Za pomocą pliku .htaccess możesz jednak pójść znacznie dalej i zablokować całą podsieć adresów IP. Możesz dokonać tego dodając do .htaccess poniższy kod:
Deny from 123.123
W tym przypadku zostaną zablokowane wszystkie adresy IP, które znajdują się w zakresie 123.123
. Możesz zawęzić tę pulę zmieniając kod na poniższy:
Deny from 123.123.123
Lub też zablokować wszystkie adresy IP rozpoczynające się od 123
w ten sposób:
Deny from 123
I tak jak w poprzednich metodach możesz umieścić wiele podsieci w jednej linii pliku .htaccess:
Deny from 111 222.222 333.333.333
Blokada adresów IP dla CIDR w .htaccss
Istnieje także możliwość zablokowania adresów IP w .htaccess za pomocą CIDR [Classless Inter-Domain Routing] zgodnie z poniższym przykładem:
Deny from 123.123.123.0/24
W ten sposób możesz zablokować bardzo dużą liczbę adresów IP, jednak konieczna jest w tym przypadku znajomość konfiguracji sieci, której dotyczy ta blokada. Podobnie jak wcześniej możesz i tutaj umieścić wiele adresów IP w jednej linii lub jedna po drugiej w pliku .htaccess.
Blokada adresów IP krajów w .htaccess
Ta metoda pozwala w stosunkowo łatwy sposób zablokować adresy IP przypisane do konkretnego kraju. W tym celu musisz jednak skorzystać z narzędzia, które pozwoli Ci na sprawdzenie jaki adres IP przypisany jest do kraju, który chcesz zablokować. W tym celu warto skorzystać z tego narzędzia, za pomocą którego możesz wygenerować gotową listę adresów IP.
Wybierz z dostępnej listy kraj lub cały kontynent, a następnie zaznacz opcję Apache .htaccess Deny
i kliknij w przycisk Create ACL
. Z prawej strony pojawi Ci się już gotowa lista adresów IP z dyrektywą Deny
pozwalającą na blokadę wybranego adresu IP lub całej ich puli.
Poniżej znajdziesz listę adresów IP wygenerowaną przez nas dla republiki Vanatu oraz skondensowaną w jedną linijkę .htaccess:
Deny from 103.7.197.0/24 103.16.15.0/24 103.20.232.0/23 103.25.228.0/23 103.36.144.0/22 103.72.90.0/23 103.75.20.0/23 103.100.10.0/24 103.101.192.0/24 103.125.232.0/22 103.226.22.0/23 113.11.240.0/21 180.222.208.0/22 194.127.164.0/22 202.4.251.0/24 202.61.106.0/23 202.80.32.0/20 203.191.128.0/22
Tak wygenerowaną listę adresów IP możesz wprost wkleić do pliku .htaccess blokując tym samym dowolną ilość krajów. Może jednak okazać się, że liczba krajów, których IP chcesz zablokować w pliku .htaccess jest znacznie większa i wtedy znacznie prostsze okaże się odwrócenie sytuacji, w której zezwolisz tylko na adresy IP wybranych krajów, a tym samym zablokujesz automatycznie wszystkie pozostałe.
Aby to zrobić dodaj poniższy kod w pliku .htaccess:
<Limit GET HEAD POST> Order Deny,Allow Deny from all Allow from 123.123.123.0/24 </LIMIT>
Powyższy kod pozwoli bowiem na dostęp do strony internetowej tylko z adresów IP należących do puli 123.123.123.0/24
podczas, gdy wszystkie inne zostaną zablokowane. Istotne znaczenie w tym przypadku ma nowa dla Ciebie dyrektywa Allow
dopuszczające określone adresy IP, a także Order
, której zadaniem jest wskazanie kolejności w jakiej ma być stosowana blokada. A zatem najpierw blokujemy wszystkie adresy IP po to, żeby linijkę niżej pozwolić na wybrane z nich 🙃 Ta prosta metoda pozwoli Ci wykluczyć potencjalnie niebezpieczne kraje, szczególnie jeżeli dostarczasz usługi tylko np. na terenie jednego kraju lub kontynentu.
Blokowanie adresów IP protokołu IPv6 w .htaccess
Na sam koniec pokażemy Ci jak za pomocą pliku .htaccess zablokować adresy IP dla protokołu IPv6. Aby to zrobić koniecznie jest bowiem zastosowanie poprawnej składni takiej jak poniżej w pliku .htaccess dla konkretnego adresu IPv6 urządzenia lub sieci:
Deny from 2001:0db8:0000:0042:0000:8a2e:0370
Blokady adresu IP w .htaccess może także dokonać zaweżając pulę adresów do konkretnego IPv6:
Deny from 2001:0db8:0000:0042:0000/10
Lub też rozszerzając ją na cały blok adresów IPv6:
Deny from 2001:0db8:0000:0042
I to by było na tyle 🙂 w temacie blokady adresów IP w .htaccess. Wybierz jedną z przedstawionych powyżej metod i zablokuj potencjalnie niebezpieczne i niechciane adresy IP na serwerze z Apache. Tym samym wzmocnisz bezpieczeństwo swojej sieci oraz serwera, a także wrażliwych danych, które na nim się znajdują.
Pamiętaj, żeby na koniec upewnić się, że założona blokada działa. Przekonasz się o tym, gdy zobaczysz taki o to widok w swojej przeglądarce internetowej:
Zablokuj adresy IP w .htaccess razem z nami
Nasz poradnik na temat blokowania adresów IP w pliku .htaccess opisaliśmy w sposób, z którym powinna poradzić sobie każda osoba, której wpadnie on w ręce. Jeżeli jednak z jakiegoś powodu nie umiesz zablokować adres IP w .htaccess lub po prostu chcesz aby zajęli się tym nasi eksperci to kliknij tutaj i napisz do nas, a następnie opisz nam dokładnie swój problem lub potrzeby. Jeżeli zdecydujemy się podjąć tego zadania otrzymasz od nas informację zwrotną wraz z wyceną. Choć specjalizujemy się w WordPress 💙 to nasza wiedza wykracza znacznie poza jego obszar i cały czas pomagamy największym firmom z Polski oraz Europy tworzyć, rozwijać oraz optymalizować istniejące rozwiązania oparte o techologie webowe oraz domeny internetowej. Do usłyszenia niebawem ✋