Tips & Tricks

Grazie a questo script in shell, possiamo bloccare eventuali attacchi ssh provenienti da internet verso il nostro sistema GNU. Questo script controlla i logs sul file "/var/log/auth.log" ogni 60 secondi, se un utente prova quindi ad effettuare un login sulla macchina servendosi di una username inesistente, sicuramente si tratta di un brute-force attack, per cui lo script rilevando il tentativo login fallito aggiungerà l'ip address dell'host remoto all'interno de file "/etc/hosts.deny" gestito dal tcp wrapper che provvederà a bloccare qualsiasi comunicazione da e verso quell'host.
Script:
while :
do
sleep 60
varcat=`cat /var/log/auth.log |grep Illegal | awk '{print $10}' |head -1 | awk '{split($0,Array,":"); print Array[4]}'`
vardate=`date`
if [ -z $varcat ]
then
# "nothing to do..."
echo "" > /var/spool/mail/root
echo "" > /var/mail/root
else
# "Block host"
echo "sshd: $varcat" >> /etc/hosts.deny
sleep 2
cat /var/log/auth.log |grep Illegal > /var/log/auth.temp
sleep 2
# echo send report via email - don't miss to change "your_account@example.com"
mail your_account@example.com -s "SSH Illegal user $vardate" < /var/log/auth.temp
sleep 1
cat /var/log/auth.temp >> /var/log/auth-backup.log
sleep 1
echo "" > /var/log/auth.log
sleep 1
rm /var/log/auth.temp
fi
done
2)# chmod 500 /usr/local/bin/ssh-attack.sh
3)infine aggiungi la sottostante riga al file "/etc/rc.local:
# sh /usr/local/bin/ssh-attack.sh
