Il est souvent souhaitable de filtrer les paquets en fonction du pays d'où ils viennent. La relation IP-Pays est faite avec GeoIP.

IPTables permet d'autoriser le SSH uniquement pour les IP françaises :
apt-get install xtables-addons-common xtables-addons-dkms libtext-csv-xs-perl linux-headers-amd64 unzip
mkdir -p /usr/share/xt_geoip
mkdir -p /tmp/geoip
cd /tmp/geoip
/usr/lib/xtables-addons/xt_geoip_dl
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip /tmp/geoip/GeoIP*.csv


Une fois fait, on peut définir une règle de filtrage IPTables avec :
iptables -A INPUT -p tcp -m geoip ! --src-cc FR --dport 22 -j DROP
Cet exemple filtre toutes les connexions vers un serveur SSH qui ne proviennent pas de France.

Les options sont :
--src-cc : Source Country code
--dst-cc : Destination Country code

Les différents codes sont ceux définis dans ISO-3366

Cette fonction est disponible pour iptables (IPv4) ou ip6tables (IPv6).

On peut créer un script de mise à jour automatique :
#!/bin/sh

# Launch by cron.d/updategeoipiptables
# 5 1 * * * root /usr/scripts/updateGeoIPIPtables
if [ ! -x /usr/lib/xtables-addons/xt_geoip_dl ]; then
  echo "No /usr/lib/xtables-addons/xt_geoip_dl available"
  echo "  apt-get install xtables-addons-common"
  exit
fi
if [ ! -x /usr/lib/xtables-addons/xt_geoip_build ]; then
  echo "No /usr/lib/xtables-addons/xt_geoip_build available"
  echo "  apt-get install xtables-addons-common"
  exit
fi
mkdir -p /tmp/geoip
cd /tmp/geoip
/usr/lib/xtables-addons/xt_geoip_dl && \
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip /tmp/geoip/GeoIP*.csv
rm -rf /tmp/geoip