Howto GeoIP
geoip est un outil de géolocalisation des adresses
IPs.
Installation
Dans Debian, le paquet geoip-bin fournit l’outil
geoiplookup, et geoip-database fournit une
base de données d’IPs par pays.
# apt install geoip-bin geoip-database
Utilisation simple
$ geoiplookup 85.31.205.43
GeoIP Country Edition: FR, France
Bases de données
L’entreprise MaxMind est le principal fournisseur de bases de données de géolocalisation d’IP. Elle a définit les format de géolocalisation d’IP les plus utilisés.
Elle a deux formats de base de données : le format legacy
DAT et le format GEOIP2.
Ils sont définis ici https://maxmind.github.io/MaxMind-DB/
Format DAT
C’est celui qui est toujours celui fournit par le paquet
geoip-database.
# ls /usr/share/GeoIP/
GeoIP.dat GeoIPv6.dat
Ce format a certains défauts, notamment il faut des fichiers séparés pour IPv4 et IPv6.
On peut indiquer à geoiplookup le fichier de base de
données au format DAT en option :
$ geoiplookup -f /usr/share/GeoIP/GeoIP.dat 85.31.205.43
GeoIP Country Edition: FR, France
Format GEOIP2 (ou
MMDB)
Ce dernier n’est pas disponible dans Debian (à ce jour, en Debian 13 Trixie).
IpLocate
fournit gratuitement des bases par pays, ville ou ASN au format
MMDB ou CSV sur Github, mais elles ne semblent
pas reconnues par goaccess
(par exemple).
À noter que la version gratuite (Lite) n’est pas précise pour de nombreuses adresses IP de FAI.
Sinon, il est aussi possible d’ouvrir un compte pour les télécharger sur maxmind.com.
Fournisseur de base de données de gélocalisation d’IP
MaxMind
Pour accéder gratuitement aux bases de données de MaxMind il faut créer un compte sur https://www.maxmind.com. On ne peut pas télécharger leur bases de données avec un simple CURL.
Ce n’est pas un fournisseur que l’on recommande.
DBIP (recommandé)
DBIP mais à disposition ses bases de données Lite via un license Creative Commons Attribution 4.0 International License et permet de les télécharger sans avoir besoin de créer de compte ou d’avoir une clée d’API,
https://db-ip.com/db/lite.php
Télécharger les bases de données MMDB
Ces commandes téléchargent dans le dossier
/usr/local/share/mmdb/, les dernières bases de donnée DBIP
Lite par pays, villes et ASN :
mount -o remount,rw /usr
install --directory --mode 755 /usr/local/share/mmdb/
for db_name in dbip-{country,city,asn}-lite; do
remote_name="${db_name}-$(date +%Y-%m).mmdb.gz"
curl --location "https://download.db-ip.com/free/${remote_name}" |
zcat > "/usr/local/share/mmdb/$db_name.mmdb"
done
mount -o remount /usr
Il suffit ensuite de configurer un logiciel pour qu’il utilise une ou plusieurs des bases de données suivantes :
/usr/local/share/mmdb/dbip-asn-lite.mmdb
/usr/local/share/mmdb/dbip-city-lite.mmdb
/usr/local/share/mmdb/dbip-country-lite.mmdb
Par exemple pour GoAccess, c’est documenté ici
IPLocate
IPLocate met à diposition une sous partie de sa base de donné via GitHub https://github.com/iplocate/ip-address-databases Elle est sous license Creative Commons Attribution-ShareAlike 4.0 International License.
Usage par des programmes tiers
GoAccess
GoAccess peut utiliser les bases de données GeoIP pour faire des statistiques géolocalisées.
Voir le HowtoGoAccess.
Matomo
Matomo permet de télécharger des bases de données d’IP directement via son interface web : https://matomo.org/faq/how-to/faq_163/
API
MaxMind propose aussi des APIs utilisables avec un module Apache ou bien en PHP par exemple.
