Un peu d'admin

Filtrage GEOIP

Par Ghislain 11 October 2018
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

comments powered by Disqus