Avoir « quelques » infos sur vos visiteurs cachés – script nslookup
Bonjour à tous,
Je ne sais pas vous mais moi je suis un curieux ….
L’envie m’a pris de vouloir les IP et le nom de la machine (si existant …) qui se sont connectées sur mon serveur depuis les logs Apache.
66.249.65.23 - - [13/Aug/2014:17:04:21 +0200] "GET /tag/ftp/ HTTP/1.1" 200 5432 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.65.23 - - [13/Aug/2014:17:29:25 +0200] "GET /tag/powershell/feed/ HTTP/1.1" 200 3096 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.65.39 - - [13/Aug/2014:17:30:23 +0200] "GET /tag/processus/ HTTP/1.1" 200 5464 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.65.31 - - [13/Aug/2014:17:34:17 +0200] "GET /2012/09/ HTTP/1.1" 200 6398 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
88.150.141.44 - - [13/Aug/2014:17:34:33 +0200] "GET /robots.txt HTTP/1.0" 200 328 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)"
88.150.141.44 - - [13/Aug/2014:17:34:35 +0200] "GET /nouveau-depart/ HTTP/1.0" 200 30677 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)"
66.249.81.95 - - [13/Aug/2014:17:46:25 +0200] "GET / HTTP/1.1" 200 6394 "-" "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0 Google favicon"
C’est pas très lisible ….
Du coup je me suis bricolé un petit script qui permet de filtrer les adresses IP du fichier access.log, généralement sous /var/log/apache2/ ou /var/log/nginx/, une fois ces IP récupérées il fait tourner nslookup pour chacune d’elles et vous affiche le résultat tout en l’écrivant dans un fichier nommé « result ».
#! /bin/bash
# efface le fichier précédant
rm result
#filtre les ips depuis le fichier access.log, supprime les doublons et les lignes vides puis l'enregistre dans le fichier ip.tri
grep -E -o '(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]?)' access.log > ip.access
cat ip.access | awk '!a[$0]++' > ip.tri
#boucle pour chercher le nom de la machine
k=1
while read line;
do
nslookup $line | awk 'NR==5 { print $4 } '
((k++))
done < ip.tri > result
#affiche le résultat sous forme de colonne dans le terminal
paste ip.tri result | column -s $'\t' -t
Le résultat va donner :
Commentaires récents