Blog

Conoscere i tentativi falliti di login via SSH

Tempo fa su un forum, trovai questo script che riassume i tentativi falliti di login effettuati via SSH. Questo script elabora il file /var/log/auth.log che contiene tutti i log delle "prese di potere" nella nostra linux box. Naturalmente vi servirà solo nel caso un cui avete un server ssh attivo e visibile dall'esterno.

Per usarlo è semplice, basta salvare lo script nella propria home, impostare il file come eseguibile tramite gui o con il comando

chmod +x script.sh

dove script.sh corrisponderà al vostro file appena creato.

Per eseguire lo script sarà necessario un

./script.sh

direttamente dalla vostra home.

Lo script mostrerà una lista di indirizzi IP e numero di tentativi falliti per ogni IP.

Post image



Ecco il codice dello script:

#!/bin/bash



# Settings for the Files

AUTHFILE=/var/log/auth.log

TMPBASE=/tmp

TMPFILE1=$TMPBASE/auth.tmp1

TMPFILE2=$TMPBASE/auth.tmp2

TMPFILE3=$TMPBASE/auth.tmp3

TMPFILE4=$TMPBASE/auth.tmp4



# Clean up any existing tmp files

if [ -e $TMPFILE1 ]; then

rm $TMPFILE1

fi

if [ -e $TMPFILE2 ]; then

rm $TMPFILE2

fi

if [ -e $TMPFILE3 ]; then

rm $TMPFILE3

fi

if [ -e $TMPFILE4 ]; then

rm $TMPFILE4

fi





# Get all IPs into tmp2 file

sed -n '/authentication failure/p' $AUTHFILE | grep 'ssh' > $TMPFILE1

sed -n '/Authentication failure/p' $AUTHFILE | grep 'ssh' >> $TMPFILE1

cat $TMPFILE1 | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' > $TMPFILE2



# Add all hosts to tmp2 file

sed '/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*/d' $TMPFILE1 > $TMPFILE4

cat $TMPFILE4 | egrep -o "rhost=[0-9a-zA-Z?,.\-]+" > $TMPFILE1

sed 's/^rhost=//' $TMPFILE1 >> $TMPFILE2



# Sort out Unique IPs

cat $TMPFILE2 | sort -u > $TMPFILE3



# Count attacks from individual IPs

if [ -e $TMPFILE1 ]; then

rm $TMPFILE1

fi

printf "\033[41mTentativi d'accesso falliti [SSH]:\033[00m"

echo

for ip in `cat $TMPFILE3` ; do

ipcount=$(cat $TMPFILE2| grep $ip | wc -l)

echo $ipcount "=>" $ip >> $TMPFILE1

done

cat $TMPFILE1 | sort -g

iptotal=$(cat $TMPFILE1 | wc -l)

printf "\033[34;1mTotal Unique IPs: $iptotal\033[00m\n"

 


Nota: se trovate ‘ o ’ nel codice sostituite con l'apice (').

Articoli correlati

DIASPORA* Facebook

Pubblicato il 16 dicembre 2007 da e letto 1887 volte.

Link di trackback

Abbonati al feed RSS. Se non sai cos'è guarda qui.

Abbonati alla newsletter per ricevere via email ogni nuovo articolo pubblicato. L'indirizzo verrà gestito da FeedBurner.

Dai il tuo parere: Commenta questo articolo!
0 commenti su Conoscere i tentativi falliti di login via SSH
    Lascia un commento

    CC BY-NC-SA 3.0 2004-2012 Daniele Napolitano — Per informazioni sulla licenza leggere le Note legali
    Torna su