Je herkent het vast wel, ineens is daar veel verkeer uit China, Rusland of Verenigde staten terwijl je eigenlijk alleen in Nederland diensten verkoopt. Als het heel veel verkeer is of als je dit verkeer helemaal wilt weren dan leg ik je hier uit hoe je dit kan aanpakken.
Iptables
Voor deze tutorial gebruik ik IPtables, dit is vaak al standaard aanwezig in een Debian of Ubuntu server. Het is een firewall op basis van ip adressen. Om te zien of het geïnstalleerd is kan je via de console / terminal (ssh) inloggen en geef je daar het volgende commando.
iptables –version
Als je antwoord krijgt met een versie nummer dan is Iptables geïnstalleerd. Als je het volgende antwoord krijgt: “iptables: command not found” dan heb je geen iptables en kan je er voor kiezen om dit te installeren.
Hoe installeer je iptables op linux
Voor Debian en Ubuntu kan je het volgende installatie commando gebruiken
sudo apt-get install iptables
en voor CentOs en Fedora kan je dit commando gebruiken
sudo yum install iptables
Het blokkeren van een heel land in iptables.
- Log in als Root op je server
- download het zone bestand
Dit is een bestand met alle ip adres blokken die binnen dat land worden gebruikt. voor bijvoorbeeld rusland kan je het volgende zone bestand downloaden
wget https://www.ipdeny.com/ipblocks/data/countries/ru.zone
- als je nu LS typt dan zie je een ru.zone bestand in je map staan.
- maak nu een nieuw bestand aan en plaats een code in dit nieuwe bestand. Ik gebruik Vim maar je kan dit ook met nano doen.
vim block_russia.sh druk daarna op enter en het bestand komt leeg naar voren met een notitie dat het op een nieuw bestand gaat. - plak de volgende code in dat bestand.
#!/bin/bash # Block Russian IP ranges from the downloaded file for ip in $(cat ru.zone); do iptables -A INPUT -s $ip -j DROP done
Dit script loopt door alle entries heen binnen het zone bestand om de blokken zo toe te voegen aan de iptables regels. Anders moet je dit met de hand doen. - sla op en sluit Vim :wq en druk op enter. dit staat voor :writequit Schrijf en sluit.
- Verander de rechten voor dit nieuwe shell script zodat je dit kan uitvoeren
chmod +x block_russia.sh - voer het script uit.
./block_russia.sh
dit kan een aantal minuten in beslag nemen en als je server veel verkeer heeft of een beetje onder vuur wordt genomen zoals bij mij het geval was dan gaat het niet snel.
Als het script klaar is zal het done melden en dan moet de iptables service even opnieuw worden gestart. - Herstart de iptables service:
sudo service iptables restart
sudo service iptables save - Controleer de instellingen
sudo iptables -L -v -nAls alles goed is gegaan dan krijg je een lange lijst waar bijvoorbeeld het volgende te zien is: