Accueil > Fail2Ban > Géolocalisation des log Fail2Ban avec Fail2BanGeoIP.py

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, China

187.5.197.13
GeoIP Country Edition: BR, Brazil

123.205.233.78
GeoIP Country Edition: TW, Taiwan

113.11.202.190
GeoIP Country Edition: CN, China

216.66.76.98
GeoIP Country Edition: US, United States

202.103.69.164
GeoIP Country Edition: CN, China

208.64.71.106
GeoIP Country Edition: US, United States

211.38.137.44
GeoIP Country Edition: KR, Korea, Republic of

114.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.

Je vous recommande aussi la lecture des sujets suivants:

Catégories:Fail2Ban
  1. Pas encore de commentaire
  1. Pas encore de trackbacks