Géolocalisation des log Fail2Ban avec Fail2BanGeoIP.py
Dans le précédent billet, je vous est indiquer comment enregistrer automatiquement la géolocalisation avec Fail2Ban dans les log qui se trouvent généralement dans /var/log/fail2ban.log
Dans celui-ci je vais vous indiquer comment géolocalisé les IP sans modifier aucun fichier de Fail2Ban.
Pour cela nous allons utiliser un script python qui fera appel au binaire geoiplookup afin d’automatiser la géolocalisation.
L’outil geoiplookup permet de faire la correspondance IP => Pays via une base de donnée qui se trouve dans /usr/share/GeoIP/GeoIP.dat
Il vous faudra bien sûr installer cette base si vous ne l’avez pas encore :
sudo aptitude install libgeoip1
Ainsi que le binaire geoiplookup qui permet de faire la correspondance IP => Pays :
sudo aptitude install geoip-bin
Ensuite copier / coller le script python qui suit.
#!/usr/bin/python # Fail2BanGeoIP.py import os import re f = open('/var/log/fail2ban.log', 'r') pattern = r".*?Ban\s*?((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))$" p = re.compile(pattern) for i in f: m = p.match(i) if m: ip = m.group(1) file = os.popen('geoiplookup %s' % ip) print ip print file.read()
Renommer le en fail2bangeoip.py par exemple. Puis changer les permissions pour qu’il soit exécutable.
chmod +x fail2bangeoip.py
Si votre log de Fail2Ban ne se trouve pas dans /var/log/fail2ban.log modifier la 7ème ligne du script pour indiquer le bon chemin du log.
Enfin pour utiliser le script python taper :
./fail2bangeoip.py
Vous aurez dans votre console des lignes de ce genre :
113.11.202.190
GeoIP Country Edition: CN, China187.5.197.13
GeoIP Country Edition: BR, Brazil123.205.233.78
GeoIP Country Edition: TW, Taiwan113.11.202.190
GeoIP Country Edition: CN, China216.66.76.98
GeoIP Country Edition: US, United States202.103.69.164
GeoIP Country Edition: CN, China208.64.71.106
GeoIP Country Edition: US, United States211.38.137.44
GeoIP Country Edition: KR, Korea, Republic of114.44.150.62
GeoIP Country Edition: TW, Taiwan
Comme vous pouvez le voir, beaucoup de CN, KR, TW.
Pour enregistrer les résultats du script dans un fichier, taper cette commande :
./fail2bangeoip.py >/home/utilisateurs/fail2bangeoip.txt
En cas de problèmes, vous pouvez me joindre via le formulaire de contact.
Commentaires récents