Heb je te maken met een bot, spammer of hacker die constant je website aanvalt? Afhankelijk van de ernst kan dit een grote invloed hebben op het aantal bezoeken en de bandbreedte, waardoor je misschien een blokkade in wil stellen.

Alle Kinsta pakketten bevatten een gratis IP Deny tool waarmee je kan voorkomen dat specifieke IP adressen en ranges je site bereiken. In dit artikel bespreken we verschillende methoden die je kan gebruiken om IP adressen te blokkeren.

Klaar voor de start?

Aan de slag!

Zo identificeer je problematische IP adressen

WordPress is een dynamische CMS, wat betekent dat niet-gecachete pagina’s op aanvraag worden gegenereerd door PHP workers. Aangezien ongecachete verzoeken aanzienlijk meer CPU en RAM resources nodig hebben om te worden uitgevoerd (zeker in vergelijking met wel-gecachete verzoeken), is het mogelijk voor iemand met slechte bedoelingen om een server tot stoppen te dwingen door veel verzoeken tegelijkertijd te verzenden.

Als je je ooit in een dergelijke situatie bevindt, kan je erover nadenken om deze problematische IP adressen te blokkeren als strategie die kan helpen de serverbelasting te verminderen.

Het Analytics dashboard van MyKinsta stelt je in staat een lijst te zien met de top IP adressen die op je site terechtkomen. Om deze IP adressen te zien, ga je naar Analytics > Geo & IP en scrol je omlaag naar “Top client IP’s”.

Top client IP adressen.
Top client IP adressen.

Als je een IP adres ziet dat veel meer verzoeken doet dan andere IP’s (bijvoorbeeld met een factor 5-10x), dan is het wellicht verstandig om verder te onderzoeken of het IP een bot of spammer is. De eenvoudigste manier om te controleren of een IP adres kwaadaardig is, is door een reputatiechecker zoals CleanTalk of Spamhaus te gebruiken.

Als de reputatiechecker het IP adres identificeert als een IP dat afkomstig is van een bot of spammer, kan je verdere actie ondernemen om het IP adres te blokkeren. Houd er rekening mee dat zelfs als de reputatiechecker het IP adres niet als kwaadaardig labelt, dit ook simpelweg kan betekenen dat het IP adres nog niet in hun database staat.

Als je ziet dat het IP adres ervoor zorgt dat je server een HTTP 502 fout retourneert of volledig platligt, is het de moeite waard om te testen of het blokkeren van het IP adres verbetering in de zaak gaat brengen.

Zo blokkeer je IP adressen met MyKinsta

Met de IP Deny tool in het MyKinsta dashboard kan je zowel individuele IP adressen als ranges van IP adressen blokkeren zonder dat je de configuratiebestanden van de webserver hoeft te blokkeren. Als je op Kinsta wordt gehost, is de IP Deny tool de aanbevolen methode om IP adressen te blokkeren.

Om een IP adres in MyKinsta te blokkeren, navigeer je naar Websites > Jouw site > IP Deny.

IP Deny tool in MyKinsta.
IP Deny tool in MyKinsta.

Klik vervolgens op de knop “IP-adressen toevoegen” in de rechterbovenhoek van de pagina.

IP adres aan blokkering toevoegen.
IP adres aan blokkering toevoegen.

In de popup “IP-addressen toevoegen om te blokkeren” kan je IPv4 adressen, IPv6 adressen en CIDR (Classless Inter-Domain Routing) IP adresranges toevoegen aan de blokkeerlijst. CIDR ranges zijn handig voor het blokkeren van een opeenvolgend bereik van IP-adressen (bijv. 127.0.0.1 tot 127.0.0.255). Om een geldig CIDR bereik te genereren, raden we aan een tool als deze te gebruiken.

Hier zijn een paar voorbeelden van IP adressen die je kan blokkeren:

  • IPv4 adres – 103.5.140.141
  • IPv6 adres – 2001:0db8:0a0b:12f0:0000:0000:0000:0001
  • CIDR range – 128.0.0.1/32

Zodra je de te blokkeren IP adressen hebt toegevoegd, klik je op de knop “IP-adressen toevoegen.

Een IP adres toevoegen aan de bloklijst.
Een IP adres toevoegen aan de bloklijst.

Je zou nu de IP adressen moeten zien die zijn toegevoegd aan de blokkeerlijst. Op deze pagina heb je ook toegang tot twee acties (Bewerken en Verwijderen) in de kolom “Acties”. Met de actie “Bewerken” kan je het IP adres of bereik bijwerken, terwijl je met de actie “Verwijderen” het geblokkeerde IP adres kan verwijderen.

Geblokkeerde IP adressen bewerken of verwijderen.
Geblokkeerde IP adressen bewerken of verwijderen.

Zo blokkeer je IP adressen in Cloudflare

Als je een Cloudflare gebruik bent, kan je de tool “IP Access Rules” in het Cloudflare dashboard gebruiken om IP adressen en IP ranges te blokkeren.

Ga in het Cloudflare dashboard naar Firewall > Tools.

Cloudflare tools dashboard.
Cloudflare tools dashboard.

Om een nieuwe IP toegangsregel aan te maken, voeg je een IPa dres toe, selecteer je de actie “Block”, selecteer je “This Website ” (of “All Websites in Account” als je wil dat de regel van toepassing is op al je Cloudflare domeinen) en klikt u op “Add”.

Een IP toegangsregel toevoegen.
Een IP toegangsregel toevoegen.

Nadat je de toegangsregel hebt toegevoegd, verschijnt deze in de lijst “IP Access Rules”. Hier kan je wijzigingen aanbrengein de toegangsregel, zoals het wijzigen van de actie, het toevoegen van opmerkingen en het verwijderen van de regel.

IP toegangsregel in het Cloudflare dashboard.
IP toegangsregel in het Cloudflare dashboard.

Naast de actie “Block”, ondersteunt Cloudflare ook “Challenge”, “Allow” en “JavaScript Challenge”. Afhankelijk van je doel, wil je misschien een van deze andere acties gebruiken in plaats van “Block”.

IP ranges, landen en ASN blokkeren in Cloudflare

Naast individuele IP adressen, kan je met Cloudflare’s IP toegangsregels ook IP ranges, landnamen en ASN’s (autonome systeemnummers) blokkeren.

  • Om een IP range te blokkeren, geef je een CIDR range op voor de waarde van de IP toegangsregel.
  • Om een land te blokkeren, geef je de Alpha-2 landcode op.
  • Om een ASN (een lijst met IP’s beheerd door een enkele netwerkoperator) te blokkeren, geeft u een geldige ASN op die begint met “AS”.

Zo blokkeer je IP adressen in Nginx

Als je site self-hosted is met de Nginx webserver, kan je IP adressen rechtstreeks blokkeren in de webserverconfiguratie. Hoewel deze methode niet zo gebruiksvriendelijk is als het blokkeren van IP’s met de IP Deny tool van MyKinsta of de firewall van Cloudflare, kan het in bepaalde situaties de enige optie zijn.

Om een IP adres in Nginx te blokkeren, open je via SSH je server en open je je Nginx configuratiebestand met de nano teksteditor – als volgt:

nano /etc/nginx/nginx.conf

Zo blokkeer je een individuele IP adres met Nginx

Om een individueel IP adres (IPv4 of IPv6) in Nginx te blokkeren, gebruik je het deny directive als volgt:

deny 190.60.78.31;
deny 4b73:8cd3:6f7b:8ddc:d2f9:31ca:b6b1:834e;

Zo blokkeer je een CIDR IP range met Nginx

Gebruik de volgende directive om een CIDR IP range in Nginx te blokkeren:

deny 192.168.0.0/24;

Geavanceerde Nginx IP blokkeringstechnieken

Als je toegang tot een specifieke map wil blokkeren (bijv. domein.com/geheime-map), kan je onderstaande Nginx directive gebruiken:

location /secret-directory/ {
        deny 192.168.0.0/24;
}

De deny directive accepteert all als een waarde. Dit is handig voor situaties waarin je alle IP adressen van je site wil blokkeren. De deny all; directive wordt vaak gebruikt in combinatie met de allow – hiermee kan je specifieke IP adressen toestaan terwijl je alle andere blokkeert.

location /secret-directory/ {
        allow 192.168.0.0/16;
        deny all;
}

Nginx configuratie opslaan en Nginx herladen

Wanneer je klaar bent met het bewerken van de configuratie met nano, sla dan je wijzigingen op door op Ctrl + O te drukken. Druk na het opslan van het bestand op Ctrl + X om nano af te sluiten.

Om de nieuwe IP blokregels te activeren, moet je ook de Nginx configuratie opnieuw laden met de onderstaande opdracht:

sudo systemctl reload nginx

Zo blokkeer je IP adressen in Apache

Als je site zelf wordt gehost met de Apache webserver, kan je IP adressen rechtstreeks in de webserverconfiguratie blokkeren. Om een IP adres in Apache te blokkeren, moet je een .htaccess bestand gebruiken, waarmee je unieke regels kan toepassen op specifieke mappen. Om regels op je hele site toe te passen, moet het .htaccess bestand in de hoofdmap van je site worden geplaatst.

Om te beginnen, open je server via SSH, navigeer naar de hoofdmap van je site en maak het .htaccess bestand met de onderstaande opdracht:

touch .htaccess

Open vervolgens het .htaccess bestand met de nano teksteditor – als volgt:

nano .htaccess

De exacte regels voor het blokkeren van IP’s zijn afhankelijk van of je Apache 2.2 of 2.4, gebruikt, dus we zullen regels voor beide versies opnemen. Gebruik bij het bewerken van je .htaccess bestand de regels die horen bij jouw Apache versie.

Zo blokkeer je een individueel IP adres met Apache

Gebruik de onderstaande regels om een enkel IP adres (IPv4 of IPv6) in Apache te blokkeren:

# Apache 2.2
order allow, deny
allow 192.168.0.0
deny from all

#Apache 2.4
Require all granted
Require not ip 192.168.0.0

Zo blokkeer je een CIDR IP range met Apache

# Apache 2.2
order allow, deny
allow 192.168.0.0/16
deny from all

#Apache 2.4
Require all granted
Require not ip 192.168.0.0/16

Samenvatting

Afhankelijk van de configuratie van je site zijn verschillende manieren om te voorkomen dat IP adressen je site bereiken. Als je een Kinsta gebruiker bent, raden we aan om de ingebouwde IP Deny tool van MyKinsta te gebruiken.

Als je site niet op Kinsta wordt gehost, raden we je aan deze te beveiligen met Cloudflare, waarmee je unieke IP toegangsregels kunt maken om IP adressen, ranges en meer te blokkeren. Mocht het ten slotte niet lukken om Cloudflare voor je site in te schakelen, kun je IP blokkeringsregels rechtstreeks in het configuratiebestand van je webserver implementeren.