GeoIP pour iptables
Source: how-to.ovh
Marre des pays exotiques qui essaient de s’introduire sur le serveur et pourrissent vos logs et font bosser fail2ban ?
Une solution pour bloquer les pays avec lesquels vous n’avez pas de relations. Pour Debian mais sûrement adaptable à d’autres distributions.
# Install GeoIP pour iptables
apt-get install dkms xtables-addons-dkms xtables-addons-common xtables-addons-dkms geoip-database libgeoip1 libtext-csv-xs-perl unzip
# On vérifie que c’est ok
dkms status xtables-addons
# on crée le repertoire
mkdir /usr/share/xt_geoip
# on se déplace dedans
cd /usr/share/xt_geoip/
# on télécharge le fichier
wget http://man.sethuper.com/wp-content/uploads/2013/06/geoip-dl-build.tar.gz
# on le décompresse
tar xvf geoip-dl-build.tar.gz
# on l’exécute
./xt_geoip_dl
# si cela donne un message d’erreur, on fait ceci
/usr/bin/perl -MCPAN -e'install Text::CSV_XS'
# on exécute l’autre fichier
./xt_geoip_build -D . *.csv
# on efface les fichiers inutiles
rm -rf geoip-dl-build.tar.gz
# on teste iptables en bloquant la Chine et la Russie
iptables -A INPUT -m geoip --src-cc CN,RU -j DROP
# on vérifie
iptables -L -v
# ce qui donnera cette ligne indiquant que les pays seront bloqués
DROP all -- anywhere anywhere -m geoip --source-country CN,RU
pour interdire le port 22 à ces pays
iptables -A INPUT -p tcp --dport 22 -m geoip --src-cc CN,RU -j DROP