Filtrage GEOIP

Un petit problème de scan et de tentatives de connexion sur un des nos serveurs m'a fait chercher une méthode pour, dans mon cas, n'autoriser l'imaps uniquement pour des ips françaises.
Solution
J'ai trouvé http://xtables-addons.sourceforge.net/, qui permet d'installer une extension geoip pour iptables.
Installation
Mon serveur étant sous centos7, je n'ai pas trouvé de rpm pour le dernier kernel 3.10.0-862.3.3 à l'heure ou j'écris ses lignes.
Il faut donc recompiler.
Dépendance
yum install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` wget unzip iptables-devel perl-Text-CSV_XS
Build it !
wget http://ufpr.dl.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons-2.14.tar.xz
tar -xvf xtables-addons-2.14.tar.xz
cd xtables-addons-2.14
./configure
sed -i '/xt_TARPIT.o$/s/^/#/' extensions/Kbuild
make && make install
Placer ce petit script dans un crontab pour qu'il s'exécute 1 fois par semaine.
Il récupère le fichier GEOIP et construit ses tables pour xtables-addons.
#!/bin/bash
set -euo pipefail
set +e
set -e
if [ ! -d /usr/share/xt_geoip ]; then
mkdir /usr/share/xt_geoip
fi
geotmpdir=$(mktemp -d)
csv_files="${geotmpdir}/GeoIPCountryWhois.csv ${geotmpdir}/GeoIPv6.csv"
OLDPWD="${PWD}"
cd "${geotmpdir}"
/usr/local/libexec/xtables-addons/xt_geoip_dl
/usr/local/libexec/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip ${csv_files}
cd "${OLDPWD}"
rm -r "${geotmpdir}"
exit 0
Utilisation
-A INPUT -m geoip --src-cc FR -m tcp -p tcp --dport 993 -j ACCEPT
Bye Bye