Script di Shell per Estrarre Indirizzi IP dai Files di LOG

Pubblicato da Yuri Carlenzoli | 30 Luglio 2014

Ecco un semplice script di shell che permette di estrarre unicamente gli indirizzi IP contenuti in un file di LOG, sia esso di un server od un computer è uno script che può essere utile per la sicurezza.

Script-Shell-Estrarre-Indirizzi-IP

I files di LOG, su Linux, oltre essere estremamente utili per diagnosticare problemi di sistema e per permettere di risolverli dato che mostrano sia cosa c'è che non va che cosa lo causa, su server sono sicuramente un metodo di web analytics che permette di vedere da chi o cosa le pagine sono state visitate, e, sia su server che client possono essere molto utili per la sicurezza, mostrando (anche) gli indirizzi IP di chi fa richieste fuori dall'ordinario o comunque non desiderate si possono bloccare con iptables, il problema può nascere dal fatto che nel file di LOG gli indirizzi IP sono sommersi da tanto altro testo, utile ma non sempre, tramite un semplice script di shell (o comando) si possono però estrarre solo gli indirizzi IP.

Funzionamento ed uso dello script per estrarre indirizzi IP

Il funzionamento di questo script o comando di shell che permette di estrarre solo gli indirizzi IP da un file di LOG o comunque da qualsiasi altro file e li riporta in un altro file uno per riga, è elementare: praticamente grazie a grep ed un espressione regolare identifica gli indirizzi IP e li estrae, tramite il parametro di grep li ordina uno per riga; per la comodità di non dover scrivere o copiare ed incollare la stringa in shell è uno script, da questo ne deriva però che, almeno per com'è realizzato, necessita di dover indicare manualmente il nome del file contenente gli indirizzi IP.

Se ad esempio si avesse un file chiamato "access.log" contenente gli IP degli accessi, semplicemente creando un file/script contenente:

#!/bin/bash
grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' access.log

Salvandolo e dandogli l'estensione ".sh" (opzionalmente), rendendolo eseguibile, posizionandolo nella stessa directory dov'è il file "access.log", e dopo essersi spostati con il terminale in quella stessa directory, e, se ad esempio lo script è stato chiamato "ipfromlog.sh", digitando in shell ./ipfromlog.sh >> ip.txt verrà creato il file di testo "ip.txt" contenente solo gli indirizzi IP contenuti nel file con i LOG.

In conclusione dico che, seppur l'utilità maggiore di questo script a mio parere sia appunto quella di estrarre indirizzi IP, magari per aggiungerli al firewall o per bloccare le richieste in altri modi, con questo script non si possono solo estrarre IP dai file di log ma anche da normali file di testo, e, usando un wildcard al posto del nome del file di origine si potranno estrarre in batch indirizzi IP da più files.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Moderazione dei commenti attiva. Il tuo commento non apparirà immediatamente.