allons plus loin
modifié le 02/09/2007 00:30:17
maintenant que nous avons la liste des IP de nos fraudeurs, nous aimerions en savoir un peu plus sur eux
la commande resolveip est notre amie et fonctionne dans les deux sens:
narberd@MacNarb:~$ resolveip www.google.fr IP address of www.google.fr is 64.233.183.147 IP address of www.google.fr is 64.233.183.103 IP address of www.google.fr is 64.233.183.99 IP address of www.google.fr is 64.233.183.104 narberd@MacNarb:~$ resolveip 64.233.183.147 Host name of 64.233.183.147 is nf-in-f147.google.com
dans le premier cas, nous partons du nom de domaine et nous obtenons une ou plusieurs adresses IP, dans le second cas, nous partons d'une adresse IP et nous obtenons un nom de machine, comprenant le nom de domaine
l'ennui, c'est que resolveip reçoit les adresses IP une à une, mais Unix étant génial, nous avons la commande xargs une_commande qui nous permet d'exécuter une_commande avec chaque mot de l'entrée standard de xargs, les séparateurs étant les espaces et les sauts de ligne
voici donc notre nouvelle ligne de commande :
grep "Failed password for root from" /var/log/auth.log | \
grep sshd | \
cut -d ' ' -f 11 | \
sort | \
uniq | \
xargs resolveip
il arrive que des IP ne soient plus accessibles au moment précis où l'on exécute notre commande, ce qui laisse apparaître des messages d'erreur qui ne nous intéressent pas spécialement, alors, pour éviter cela, on redirige la sortie d'erreur vers /dev/null:
grep "Failed password for root from" /var/log/auth.log | \
grep sshd | \
cut -d ' ' -f 11 | \
sort | \
uniq | \
xargs resolveip 2> /dev/null