6848 wyświetlenia
2143 wyrazów
Jak zablokować adres IP w .htaccess

Jak zablokować adres IP w .htaccess

Przeczytasz w 10 minut i 42 sekundy 2023.03.10 | Aktualizacja: 2023.09.20
Jak zablokować adres IP w .htaccess

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.

Jak zablokować adres IP w .htaccess - kraje

Sprawdzanie adresów IP przypisanych do konkretnych krajów.

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:

Jak zablokować adres IP w .htaccess - blokada

Widok zablokowanej domeny internetowej za pomocą adresów IP w .htaccess.

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 ✋

Jesteśmy by pomagać

Skorzystaj z natychmiastowej pomocy ekspertów WordPress. Wyślij nam wiadomość za pomocą formularza kontaktowego i opisz nam swój problem lub to czego potrzebujesz.

Nazwa firmy
Sirius Pro

Dane firmy
ul. Grzybowska 87
00-844 Warszawa

Identyfikator
PL 9111958679
Zgody i prywatność
Sprawdź i wybierz, które dane może przechowywać ta strona internetowa w plikach cookies, pamięci lokalnej i sesji przeglądarki internetowej
Podstawowe funkcjonowanie strony Do poprawnego korzystania z tej strony wymagane jest anonimowe przechowywanie niektórych danych dotyczących jej wyglądu oraz sposobu działania